Help
RSS
API
Feed
Maltego
Contact
Domain > nicksnell.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2018-03-04
79.125.111.38
(
ClassC
)
2024-12-25
104.21.86.215
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Wed, 25 Dec 2024 18:24:45 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveCache-Control: max-age3600Expires: Wed, 25 Dec 2024 19:24:45 GMTLocation: https://nicksnell.com/Report-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sg4d4noYw9MeGl2mOUYExgbuwhCiS5XOnbXllmHoOG0H5E%2FS4jquMo5diw0b8yhQocvnusw%2FcS6tqMBBgQZAchEbBUxdr80bxlYVV4h5fJiigHa9rxLv2CC6fx%2BWitoNx},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8f7adead9e302f6d-PDXalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt6192&min_rtt6192&rtt_var3096&sent1&recv3&lost0&retrans0&sent_bytes0&recv_bytes52&delivery_rate0&cwnd246&unsent_bytes0&cid0000000000000000&ts0&x0 html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>cloudflare/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Wed, 25 Dec 2024 18:24:45 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveAccess-Control-Allow-Origin: *Cache-Control: public, max-age0, must-revalidatereferrer-policy: strict-origin-when-cross-originx-content-type-options: nosniffReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sZ2HUt0lOMDWShjIqGrCVx8kKPKrK6Ka0MwX0abf17kpitgrhKk%2F4AaKapgGhutOA9lmGCQCxXbumajZeH0fASaC6njVSKHUhB%2FSCeOdrZIdtyKFBUvH%2Fxw%2BiQBwi%2Fl%2BW},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Vary: Accept-Encodingcf-cache-status: DYNAMICServer: cloudflareCF-RAY: 8f7adeae0b292f48-PDXalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt6119&min_rtt5903&rtt_var1799&sent5&recv6&lost0&retrans0&sent_bytes2837&recv_bytes724&delivery_rate490598&cwnd224&unsent_bytes0&cid7a2ad7adcd7414ba&ts108&x0 !doctype html>html langen>head> meta nameviewport contentwidthdevice-width, initial-scale1.0> meta charsetutf-8> meta nameauthor contentNick Snell> meta namedescription contentnicksnell.com> link relicon typeimage/x-icon href/favicon.png> link relcanonical hrefhttps://nicksnell.com/> link relstylesheet href/assets/css/site.css> link relalternate href/feeds/atom.xml typeapplication/atom+xml titlenicksnell.com Feed> title>nicksnell.com/title>/head>body classfont-sans text-black antialiased> div classpx-6 py-8 md:px-16 lg:px-24 lg:py-16> main classpt-4 lg:pt-6 max-w-2xl> header classflex flex-row lg:space-x-8 lg:py-2> nav aria-labelGlobal> a hrefhttps://nicksnell.com classinline-flex mr-6 py-2 text-black no-underline font-bold text-lg font-extrabold leading-none> Nick Snell /a> a href/log/ tabindex0 aria-labelArchive classtext-gray-400 hover:text-black rounded-md py-2 px-3 inline-flex items-center text-sm font-medium>Archive/a> a hrefhttps://github.com/nicksnell tabindex0 aria-labelCode on Github classtext-gray-400 hover:text-black rounded-md py-2 px-3 inline-flex items-center text-sm font-medium>Code/a> a hrefmailto:n@nicksnell.com classtext-gray-400 hover:text-black rounded-md py-2 px-3 items-center text-sm font-medium hidden md:inline-flex tabindex0 aria-labelContact by email>Contact/a> a href/feed.xml tabindex0 aria-labelRSS Feed classtext-gray-400 hover:text-black rounded-md py-2 px-3 inline-flex items-center text-sm font-medium>Feed/a> /nav> /header> div classpt-10 lg:pt-16> article classarticle prose itemscope itemtypehttp://schema.org/BlogPosting> time datetime2020-06-21T00:00:00+00:00 itempropdatePublished> Sunday, 21 June 2020 /time> h1 itempropname headline> a href/log/2020/06/multi-region-sites-on-netlify/ itempropurl classno-underline hover:underline>Multi-Region Sites on Netlify/a> /h1> section itemproparticleBody classpb-12 lg:pb-24> p>It’s not immediately obvious on a hrefhttps://netlify.com>Nelify/a> how you can host multiple sites all under the same domain when using multiple Netlify applications. This is probably because Netlify prefers to map a domain to a particular application, but you can work around this by using rewites to map url paths to sub domains./p>p>This is really useful should you have a multi-region site where you want to keep all the ‘sites’ under the same domain - rather than split them across different sub-domains or TLD’s./p>p>So, for example, if you had a site designed for 3 regions: Britain, Ireland & Germany/p>p>img srchttps://raw.githubusercontent.com/nicksnell/mehrere/master/arch.png altSite Structure />/p>p>and you wanted the URL structure to be like the following:/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>pre classhighlight>code>https://example.com/gb/https://example.com/ie/https://example.com/de//code>/pre>/div>/div>p>First you need to great 4 netlify applications, one for each of the site specific apps and an 4th for the master site to redirect to the others. Each of the site specific applications should be mapped to a subdomain. You then end up with a setup like this:/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>pre classhighlight>code>App Master - example.comApp GB - gb.example.comApp IE - ie.example.comApp DE - de.example.com/code>/pre>/div>/div>p>You can then configure the master application to redirect to a site specific app on a specific url path. The code classlanguage-plaintext highlighter-rouge>netlify.toml/code> on the main site looks like this:/p>div classlanguage-toml highlighter-rouge>div classhighlight>pre classhighlight>code>span classnn>redirects/span> span classpy>from/span> span classp>/span> span classs>/gb/*/span> span classpy>to/span> span classp>/span> span classs>https://gb.example.com/:splat/span> span classpy>status/span> span classp>/span> span classmi>200/span>span classnn>redirects/span> span classpy>from/span> span classp>/span> span classs>/de/*/span> span classpy>to/span> span classp>/span> span classs>https://de.example.com/:splat/span> span classpy>status/span> span classp>/span> span classmi>200/span>span classnn>redirects/span> span classpy>from/span> span classp>/span> span classs>/ie/*/span> span classpy>to/span> span classp>/span> span classs>https://ie.example.com/:splat/span> span classpy>status/span> span classp>/span> span classmi>200/span>/code>/pre>/div>/div>p>em>_Note: If the site specific applications use absolute URL’s you need to remeber to add the path prefix otherwise the url may be resolved by the master app./em>/p>p>Once setup, you can add an additional layer to a hrefhttps://docs.netlify.com/routing/redirects/redirect-options/#redirect-by-country-or-language>redirect the traffic automatically based on the calling users IP address/a> by adding further redirects to the master sites code classlanguage-plaintext highlighter-rouge>netlify.toml/code>:/p>div classlanguage-toml highlighter-rouge>div classhighlight>pre classhighlight>code>span classnn>redirects/span> span classpy>from/span> span classp>/span> span classs>/*/span> span classpy>to/span> span classp>/span> span classs>/gb//span> span classpy>status/span> span classp>/span> span classmi>302/span> span classpy>force/span> span classp>/span> span classkc>true/span> span classnn>conditions/span> span classo>/span> span classp>{/span>span classpy>Country/span> span classp>/span> span classnn>gb/span>span classp>}/span>span classnn>redirects/span> span classpy>from/span> span classp>/span> span classs>/*/span> span classpy>to/span> span classp>/span> span classs>/de//span> span classpy>status/span> span classp>/span> span classmi>302/span> span classpy>force/span> span classp>/span> span classkc>true/span> span classnn>conditions/span> span classo>/span> span classp>{/span>span classpy>Country/span> span classp>/span> span classnn>de/span>span classp>}/span>span classnn>redirects/span> span classpy>from/span> span classp>/span> span classs>/*/span> span classpy>to/span> span classp>/span> span classs>/ie//span> span classpy>status/span> span classp>/span> span classmi>302/span> span classpy>force/span> span classp>/span> span classkc>true/span> span classnn>conditions/span> span classo>/span> span classp>{/span>span classpy>Country/span> span classp>/span> span classnn>ie/span>span classp>}/span>/code>/pre>/div>/div>p>Once donem these redirects will push users from code classlanguage-plaintext highlighter-rouge>example.com//code> to code classlanguage-plaintext highlighter-rouge>example.com/<site path>/code> automatically. It can make testing difficult however, so you can override this behaviour by setting a code classlanguage-plaintext highlighter-rouge>nf_country/code> cookie with the correct a hrefhttps://dev.maxmind.com/geoip/legacy/codes/iso3166/>ISO 3166/a> country code./p>p>A full working example can be found on a hrefhttps://github.com/nicksnell/mehrere>Github/a> and a a hrefhttps://thebsides.co.uk/>sample Netlify app/a>./p> /section>/article>article classarticle prose itemscope itemtypehttp://schema.org/BlogPosting> time datetime2019-01-27T00:00:00+00:00 itempropdatePublished> Sunday, 27 January 2019 /time> h1 itempropname headline> a href/log/2019/01/formatting-currency-javascript-internationalization-api/ itempropurl classno-underline hover:underline>Formatting Currency using Javascripts Internationalization API/a> /h1> section itemproparticleBody classpb-12 lg:pb-24> p>Javascript has a surprisingly neat (and built-in) way to format currency values using it’s Internationalization API a hrefhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl>code classlanguage-plaintext highlighter-rouge>Intl/code>/a>./p>p>It’s the sort of thing thats often forgotten when ‘internatinalising’ sites as the variation of display for numeric values isn’t widely appreciated. But using the Internationalization API it’s really simple to display numbers in the preferred format of your users./p>!--more-->p>To format a currency output, use a hrefhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat>code classlanguage-plaintext highlighter-rouge>Intl.NumberFormat/code>/a>:/p>div classlanguage-javascript highlighter-rouge>div classhighlight>pre classhighlight>code>span classkd>const/span> span classnx>currencyFormatter/span> span classo>/span> span classk>new/span> span classnx>Intl/span>span classp>./span>span classnx>NumberFormat/span>span classp>(/span>span classdl>/span>span classs1>de/span>span classdl>/span>span classp>,/span> span classp>{/span> span classna>style/span>span classp>:/span> span classdl>/span>span classs1>currency/span>span classdl>/span>span classp>,/span> span classna>currency/span>span classp>:/span> span classdl>/span>span classs1>EUR/span>span classdl>/span>span classp>,/span>span classp>})/span>span classnx>currencyFormatter/span>span classp>./span>span classnx>format/span>span classp>(/span>span classmi>100/span>span classp>)/span> span classc1>// -> 100,00 €/span>/code>/pre>/div>/div>div classlanguage-javascript highlighter-rouge>div classhighlight>pre classhighlight>code>span classkd>const/span> span classnx>currencyFormatter/span> span classo>/span> span classk>new/span> span classnx>Intl/span>span classp>./span>span classnx>NumberFormat/span>span classp>(/span>span classdl>/span>span classs1>en/span>span classdl>/span>span classp>,/span> span classp>{/span> span classna>style/span>span classp>:/span> span classdl>/span>span classs1>currency/span>span classdl>/span>span classp>,/span> span classna>currency/span>span classp>:/span> span classdl>/span>span classs1>EUR/span>span classdl>/span>span classp>,/span>span classp>})/span>span classnx>currencyFormatter/span>span classp>./span>span classnx>format/span>span classp>(/span>span classmi>100/span>span classp>)/span> span classc1>// -> €100.00/span>/code>/pre>/div>/div>p>It’s a great API but does have some caveats, particularly if you use english formatting on certain currencies. For example, the Swedish currency Krona. With the Swedish code classlanguage-plaintext highlighter-rouge>sv/code> locale in place the output will be code classlanguage-plaintext highlighter-rouge>100,00 kr/code>, so you might expect the code classlanguage-plaintext highlighter-rouge>en/code> output to be code classlanguage-plaintext highlighter-rouge>100.00 kr/code>, however it displays code classlanguage-plaintext highlighter-rouge>SEK 100.00/code>, which seems to be a fallback./p>p>There is an additional argument code classlanguage-plaintext highlighter-rouge>currencyDisplay/code> which in theory will enforce the output style, but even with it set to code classlanguage-plaintext highlighter-rouge>symbol/code> (which is actually the default) in this case it doesn’t matter./p> /section>/article>article classarticle prose itemscope itemtypehttp://schema.org/BlogPosting> time datetime2018-01-03T00:00:00+00:00 itempropdatePublished> Wednesday, 3 January 2018 /time> h1 itempropname headline> a href/log/2018/01/getting-started-with-mutt-forms-vue/ itempropurl classno-underline hover:underline>Getting started with Mutt Forms Vue/a> /h1> section itemproparticleBody classpb-12 lg:pb-24> p>Mutt Forms Vue (MFV) is an extension to Mutt Forms, a tool for building HTML forms from JSON Schema definitions, to make it compatible with VueJS. By default, Mutt Forms renders HTML forms directly to the DOM, MFV uses Vue templating system in addition to offering some other benefits - like reactive properties./p>!--more-->p>MFV was developed in-house at a hrefhttps://boughtbymany.com>Bought By Many/a>, primarily to get a more robust integration with our VueJS apps. Mutt Forms works directly with the DOM which doesn’t play nicely with Vue, it’s a bit of an anti-pattern to mix these approaches so MFV was born to solve that issue. Like Mutt Forms, it has no dependencies (apart from Vue & Mutt itself) so it’s a tiny addition to any app, and is super fast at rendering even large complicated forms. It’s available for all on a standard MIT license./p>h3 idinstalling>Installing/h3>p>MFV is easily installed from NPM, it’s recommended to use code classlanguage-plaintext highlighter-rouge>yarn/code> but code classlanguage-plaintext highlighter-rouge>npm/code> works just fine too:/p>p>code classlanguage-plaintext highlighter-rouge>yarn add mutt-forms-vue/code>/p>p>Once installed, it can be hooked into Vue like most Vue plugins by using code classlanguage-plaintext highlighter-rouge>Vue.use()/code>. This can be done anywhere during the app initialisation:/p>div classlanguage-javascript highlighter-rouge>div classhighlight>pre classhighlight>code>span classk>import/span> span classnx>Vue/span> span classk>from/span> span classdl>/span>span classs1>vue/span>span classdl>/span>span classk>import/span> span classnx>MuttVue/span> span classk>from/span> span classdl>/span>span classs1>mutt-forms-vue/span>span classdl>/span>span classnx>Vue/span>span classp>./span>span classnx>use/span>span classp>(/span>span classnx>MuttVue/span>span classp>)/span>/code>/pre>/div>/div>h3 iduse-with-webpack>Use with Webpack/h3>p>MFV, like Mutt Forms, is written in ES6. You can use it directly but you may need toadjust your code classlanguage-plaintext highlighter-rouge>babel/code> setup to have it transpile correctly. To avoid this, a bundledcode classlanguage-plaintext highlighter-rouge>dist/code> version is provided where the module has already been transpiled. You can includethis version using the webpack alias syntax:/p>div classlanguage-json highlighter-rouge>div classhighlight>pre classhighlight>code>span classp>{/span>span classw> /span>span classnl>resolve/span>span classp>:/span>span classw> /span>span classp>{/span>span classw> /span>span classnl>alias/span>span classp>:/span>span classw> /span>span classp>{/span>span classw> /span>span classnl>mutt-forms$/span>span classp>:/span>span classw> /span>span classs2>node_modules/mutt-forms/dist/mutt-forms.es.js/span>span classp>,/span>span classw> /span>span classnl>mutt-forms-vue$/span>span classp>:/span>span classw> /span>span classs2>node_modules/mutt-forms-vue/dist/mutt-forms-vue.es.js/span>span classw> /span>span classp>}/span>span classw> /span>span classp>}/span>span classw>/span>span classp>}/span>span classw>/span>/code>/pre>/div>/div>p>NOTE: Depending on your setup, you may need a code classlanguage-plaintext highlighter-rouge>vue/code> alias here also, MFV internally uses Vue templates - so you will need the template compiler, a hrefhttps://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only>not just the runtime/a>./p>h3 idgetting-started>Getting started/h3>p>MFV will extend Vue to add the components ‘mutt-vue’, ‘mutt-widget’ & ‘mutt-watcher’, as well as extending Vue to add a hook directly to Mutt (this is available as code classlanguage-plaintext highlighter-rouge>this.$mutt/code> inside components). The components can be used to build forms (and form fragments) directly in Vue templates. In the simplest case, you can just pass a JSON schema to a ‘mutt-vue’ component and you will get a form:/p>div classlanguage-html highlighter-rouge>div classhighlight>pre classhighlight>code>span classnt><template>/span> span classnt><div>/span> span classnt><mutt-vue/span> span classna>v-bind:schema/span>span classs>schema/span> span classna>v-on:submit/span>span classs>”submitForm”/span>span classnt>>/span> span classnt></div>/span>span classnt></template>/span>span classnt><script>/span>span classk>export/span> span classk>default/span> span classp>{/span> span classna>name/span>span classp>:/span> span classdl>/span>span classs1>demo/span>span classdl>/span>span classp>,/span> span classnx>data/span>span classp>()/span> span classp>{/span> span classk>return/span> span classp>{/span> span classna>schema/span>span classp>:/span> span classp>{/span> span classna>name/span>span classp>:/span> span classp>{/span> span classna>type/span>span classp>:/span> span classdl>/span>span classs1>string/span>span classdl>/span> span classp>},/span> span classna>email/span>span classp>:/span> span classp>{/span> span classna>type/span>span classp>:/span> span classdl>/span>span classs1>string/span>span classdl>/span> span classp>}/span> span classp>}/span> span classp>}/span> span classp>}/span> span classnl>methods/span>span classp>:/span> span classp>{/span> span classnx>submitForm/span>span classp>(/span>span classnx>form/span>span classp>)/span> span classp>{/span> span classk>if/span>span classp>(/span>span classnx>form/span>span classp>./span>span classnx>validate/span>span classp>())/span> span classp>{/span> span classnx>console/span>span classp>./span>span classnx>log/span>span classp>(/span>span classdl>/span>span classs1>Submission!/span>span classdl>/span>span classp>,/span> span classnx>JSON/span>span classp>./span>span classnx>stringify/span>span classp>(/span>span classnx>form/span>span classp>./span>span classnx>data/span>span classp>(),/span> span classkc>null/span>span classp>,/span> span classmi>2/span>span classp>))/span> span classp>}/span> span classp>}/span> span classp>}/span>span classp>}/span>span classnt></script>/span>/code>/pre>/div>/div>p>‘mutt-forms-vue’ also takes options, just as Mutt Form objects themselves do - in fact code classlanguage-plaintext highlighter-rouge>mutt-forms-vue/code> components will take all of the arguments you might expect to send to a Mutt Form object./p>h3 ida-bit-deeper>A bit deeper/h3>p>Under the hood of the code classlanguage-plaintext highlighter-rouge>mutt-vue/code> component is simply iterating over (along with some helpful layout & functions) a set of Mutt form fields and renders each one using code classlanguage-plaintext highlighter-rouge>mutt-widget/code>. You don’t have to do this however, if you want to create custom layouts or create form fragments you can use the code classlanguage-plaintext highlighter-rouge>mutt-widget/code> component directly./p>p>code classlanguage-plaintext highlighter-rouge>mutt-widget/code> components expect a field as an argument and will render the corresponding HTML input interface for that field type. The code classlanguage-plaintext highlighter-rouge>mutt-widget/code> component is itself polymorphic, and will inspect the field type to determine exactly how it should render. As is usual with Mutt, you can use field options to override default widgets for a given field, MFV will respect this too./p>div classlanguage-html highlighter-rouge>div classhighlight>pre classhighlight>code>span classnt><mutt-widget/span> span classna>v-bind:field/span>span classs>field/span>span classnt>></mutt-widget>/span>/code>/pre>/div>/div>h3 idgetting-reactive>Getting reactive/h3>p>The final MFV component is called code classlanguage-plaintext highlighter-rouge>mutt-watcher/code>. These can be used to reflect the value of a given field reactively. Internally MFV will make the field value reactive, which means should it change it will update other components reactively. ‘mutt-watcher’ exploits this, so you can create things like form summary panels or more intricate UI’s. As will code classlanguage-plaintext highlighter-rouge>mutt-widget/code>, it requires a form field to be bound to it. It will render the field value in a text format in the format code classlanguage-plaintext highlighter-rouge>field name: <field value>/code>, there are a few options to aid this display, but by default it will handle all of the data types Mutt understands./p>p>It has a couple of neat uses, for example displaying the value of a hidden field that’s being updated behind the scenes elsewhere and it can even display form fields that aren’t otherwise rendered in the main form./p>div classlanguage-html highlighter-rouge>div classhighlight>pre classhighlight>code>span classnt><mutt-watcher/span> span classna>v-bind:field/span>span classs>field/span>span classnt>></mutt-watcher>/span>/code>/pre>/div>/div>p>Hopefully that covers some of the main features of MFV, there is a a hrefhttps://github.com/nicksnell/mfv-getting-started>git repository/a> available with all of these code samples in a working demo app. MFV is still under active development but at this stage it’s API can be considered pretty stable./p>p>(If you end up using MFV in a project, would love to hear your experience!)/p> /section>/article>article classarticle prose itemscope itemtypehttp://schema.org/BlogPosting> time datetime2017-12-17T00:00:00+00:00 itempropdatePublished> Sunday, 17 December 2017 /time> h1 itempropname headline> a href/log/2017/12/google-map-moat/ itempropurl classno-underline hover:underline>How far ahead of Apple Maps is Google Maps?/a> /h1> section itemproparticleBody classpb-12 lg:pb-24> p>As someone who just can’t make the switch to Apple Maps permanently, it’s really no surprise to hear Google is winning this particular battle, but it’s incredible to see just how far ahead it is./p>blockquote> p>“Now, you can see 25 million new building footprints that have been added to Google Maps on desktop and mobile across major metropolitan regions in the United States, including Houston, Los Angeles, Chicago, Miami, and the San Francisco Bay Area.”/p>/blockquote>p>Great round up of the differences by a hrefhttps://www.justinobeirne.com/google-maps-moat>Justin O’Beirne/a>./p> /section>/article>article classarticle prose itemscope itemtypehttp://schema.org/BlogPosting> time datetime2017-11-20T00:00:00+00:00 itempropdatePublished> Monday, 20 November 2017 /time> h1 itempropname headline> a href/log/2017/11/uml-sequence-diagrams/ itempropurl classno-underline hover:underline>Generating UML Sequence diagrams in Javascript/a> /h1> section itemproparticleBody classpb-12 lg:pb-24> p>img src/assets/images/2017/sequence-diagram.svg altUML Sequence Diagram />/p>p>UML might be 20+ years old at this stage but it’s still incredibly useful -especially when describing a Micro-service world./p>p>Drawing the diagrams themselves, with a tool like VISO or OmniGraffle, doesget old quite quickly though when changes are rapid./p>p>I’ve started using a hrefhttps://mermaidjs.github.io/>Mermaid/a> for generating thesystem diagrams from ‘code’ directly. It’s much less work as things change andis really easy to setup./p>!--more-->p>The simplest way to get started is to install the a hrefhttps://github.com/mermaidjs/mermaid.cli>CLI/a>version of mermaid:/p>p>code classlanguage-plaintext highlighter-rouge>yarn global add mermaid.cli/code>/p>p>Once your up and running, you can produce diagrams by writing out a documentcontaining the sequence:/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>pre classhighlight>code>sequenceDiagram participant C as Client participant MS1 as Microservice 1 participant MS2 as Microservice 2 C->>MS1: Make Request activate MS1 MS1->>MS2: Internal Request activate MS2 MS2-->>MS1: Data deactivate MS2 MS1-->>C: Response data deactivate MS1/code>/pre>/div>/div>p>And running the build command:/p>p>code classlanguage-plaintext highlighter-rouge>mmdc -i test.mmd -o test.svg/code>/p>p>The syntax for generating the diagrams is reasonably intuitive, but thereare a couple of gotchas - most of which cause the diagram to not render.It’s worth checking the a hrefhttps://mermaid-js.github.io/mermaid/#/sequenceDiagram>diagram reference/a> tomake sure your syntax is correct as the CLI interface doesn’t give feedback./p> /section>/article> /div> footer classpt-16 lg:pt-24 pb-8 lg:pb-16 text-sm text-gray-400> a hrefhttps://nicksnell.com>∞/a> · a hrefhttps://github.com/nicksnell>Github/a> · a hrefhttps://twitter.com/nicksnell>Twitter/a> · a hrefhttps://creativecommons.org/licenses/by-nd/4.0/>License (CC BY-ND)/a> /footer> /main> /div>!-- Cloudflare Pages Analytics -->script defer srchttps://static.cloudflareinsights.com/beacon.min.js data-cf-beacon{token: 50b2b05b52c645d0b8e837c7389eafc6}>/script>!-- Cloudflare Pages Analytics -->/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]