<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[iDev.systems]]></title><description><![CDATA[Engineering Ecommerce and the Supply Chain.]]></description><link>https://idev.systems/</link><image><url>https://idev.systems/favicon.png</url><title>iDev.systems</title><link>https://idev.systems/</link></image><generator>Ghost 4.42</generator><lastBuildDate>Mon, 06 Apr 2026 09:07:07 GMT</lastBuildDate><atom:link href="https://idev.systems/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Unlocking NetSuite logging]]></title><description><![CDATA[<p>Many organizations miss out on using NetSuite logging to its full potential. </p><p>For debug level lines, most organizations use them for outputing variables similar to how we used to log variables out before we had debuggers. Audit level lines are used for significant events or actions without any context.</p><p>While</p>]]></description><link>https://idev.systems/netsuite-logging/</link><guid isPermaLink="false">67ff0ebfa76160050ef2c435</guid><category><![CDATA[NetSuite]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Wed, 16 Apr 2025 04:29:57 GMT</pubDate><content:encoded><![CDATA[<p>Many organizations miss out on using NetSuite logging to its full potential. </p><p>For debug level lines, most organizations use them for outputing variables similar to how we used to log variables out before we had debuggers. Audit level lines are used for significant events or actions without any context.</p><p>While this might work for trivial solutions, it does not scale for large complex solutions. </p><p>For enterprise solutions, logging is crucial for debugging and monitoring. We need to be able to see patterns in order to solve complex and edge case issues.</p><p><strong>Constraints in NetSuite Logging</strong> </p><p>NetSuite has limitations on logging:</p><ol><li><strong>Retention:</strong> Logs are retained for up to 30 days, but high log volume can result in significantly shorter retention periods. While the Script Execution Logs under <em>Customization &gt; Scripting</em> are retained for the full 30 days, other log sources may not be.</li><li><strong>Log Count Limits:</strong> NetSuite caps log method calls at 100,000 per hour. Exceeding this threshold prompts Oracle to raise the script&apos;s log level, often reducing debug-level logs to audit and potentially then further to just errors, diminishing the value of the logs.</li></ol><p>To address these constraints, it&apos;s critical to approach logging with a strategy tailored for large-scale, complex solutions.</p><p><strong>Optimizing NetSuite Logging for Enterprise Use</strong></p><ol><li><strong>Efficient Use of Log Fields:</strong> Minimize log calls by utilizing both the <code>title</code> and <code>description</code> fields effectively. For example, consolidate multiple variable values into one line, the simplest being single JSON object, rather than creating separate log lines.</li><li><strong>Add Context to Log Lines:</strong> Instead of using separate lines for additional information, include context like record IDs and execution times in the same log line. For instance, by including a record ID directly within a log line, you&apos;ll have immediate context for events or errors without needing to reference other logs.</li><li>In BeforeSubmit events there is not yet a record id yet since the record is not yet saved. &#xA0;However, there is still an opportunity to indicate the record. &#xA0;For example, with Sales Orders, I have created a simple script that depending on our type of Sales Order, I grab the corresponding id for that type and use that to build the record identifier that is then prepended onto every log line moving forward. </li><li><strong>Track Performance Metrics:</strong> Include execution times for actions or steps in your log lines. This helps you monitor script performance over time and identify potential bottlenecks.</li><li><strong>Stay Informed:</strong> Create a saved search to email all error, emergency, and system-level log lines. This keeps you proactively informed about critical issues in your system.</li></ol><p>By refining your logging practices and addressing NetSuite&apos;s limitations, you can unlock a new level of insight and reliability in your solution. For additional details on NetSuite&apos;s logging governance, visit <a href="https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N3352137.html">Oracle&apos;s documentation</a>.</p>]]></content:encoded></item><item><title><![CDATA[SuiteTools redesign]]></title><description><![CDATA[<p>SuiteTools looked promising, but it was a battle to add new functionality. What it required was a redesign for easier development and maintenance.</p><p>The first step was to completely separate the frontend (client) from the backend (server). This not only helps with managing complexity but also allows the best tools</p>]]></description><link>https://idev.systems/suitetools-redesign/</link><guid isPermaLink="false">67a95ab1a76160050ef2c2a7</guid><category><![CDATA[NetSuite]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Tue, 18 Feb 2025 05:57:59 GMT</pubDate><content:encoded><![CDATA[<p>SuiteTools looked promising, but it was a battle to add new functionality. What it required was a redesign for easier development and maintenance.</p><p>The first step was to completely separate the frontend (client) from the backend (server). This not only helps with managing complexity but also allows the best tools to be used for each.</p><p>For the backend, my <a href="https://github.com/mattplant/NetSuite-TypeScript-SDF">NetSuite TypeScript SDF Project Template</a> allowing development in <strong>TypeScript</strong> and deployments with NetSuite&apos;s SuiteCloud Development Framework (<strong>SDF</strong>) had proven itself. In additional to continuing to use a Suitelet to bootstrap the app, I created a RESTlet for the API endpoint from the previous model component.</p><p>For the frontend, I needed to select a lightweight JavaScript library with a large ecosystem for building dynamic and responsive web applications. After half a year of exploration, I selected <strong>React</strong>. I also selected <strong>Vite</strong> as the build tool since it easy to use and fast. </p><p>Another design decision was to build the frontend as a Single Page Application (<strong>SPA</strong>) since they allow for a very interactive and responsive UI. The component-based architecture allows for easier development and maintenance. The React SPA was built from the previous controller and view components.</p><p>Not only is the development now easier, but the application is also extremely responsive. React also has a rich ecosystem. I am continuing to use <strong>Flowbite</strong> and <strong>Tailwind CSS</strong> for styling. And using <strong>react-data-grid</strong> for displaying data and <strong>D3</strong> for dynamic interactive data visualizations.</p>]]></content:encoded></item><item><title><![CDATA[SuiteTools design]]></title><description><![CDATA[<p>SuiteTools was built utilizing the Model View Controller (<strong>MVC</strong>) pattern which promotes a clean and maintainable code structure that scales well.</p><p>The <u>Model</u> mainly used <strong>SuiteQL</strong> to collect the data. The <u>View</u> was done with html templates powered by handlebars and tailwindcss. The <u>Controller</u> which binds the Model and View</p>]]></description><link>https://idev.systems/suitetools-design/</link><guid isPermaLink="false">67a67feaa76160050ef2c16d</guid><category><![CDATA[NetSuite]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 10 Feb 2025 01:44:28 GMT</pubDate><content:encoded><![CDATA[<p>SuiteTools was built utilizing the Model View Controller (<strong>MVC</strong>) pattern which promotes a clean and maintainable code structure that scales well.</p><p>The <u>Model</u> mainly used <strong>SuiteQL</strong> to collect the data. The <u>View</u> was done with html templates powered by handlebars and tailwindcss. The <u>Controller</u> which binds the Model and View together was built utilizing a NetSuite Suitelet script.</p><p>I used SuiteCloud Development Framework (<strong>SDF</strong>) to deploy the code from <strong>VS Code</strong> to NetSuite. And I used <strong>TypeScript</strong> to continue to again support clean and maintainable code. If you are interested in developing NetSuite solutions with SDF and TypeScript, see my <a href="https://github.com/mattplant/NetSuite-TypeScript-SDF">NetSuite TypeScript SDF Project Template</a> project on github.</p><p>All this code ran on NetSuite servers. It&apos;s all custom code that needs to be built and maintained. For pulling data it worked well. Adding functionality though was slow and adding interactivity even slower.</p><p>There has to be a better way. A JavaScript framework? Which one?</p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[SuiteTools - the missing NetSuite tools]]></title><description><![CDATA[<p>NetSuite is a powerful tool, but like any enterprise solution, it can get complex. I wanted to build an admin tool that could extract meaningful information from NetSuite.</p><p>It should keep me up to date with what are the new objects and errors in the system. Not only should it</p>]]></description><link>https://idev.systems/suitetools/</link><guid isPermaLink="false">679d76d9a76160050ef2bfa6</guid><category><![CDATA[NetSuite]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 03 Feb 2025 23:29:06 GMT</pubDate><content:encoded><![CDATA[<p>NetSuite is a powerful tool, but like any enterprise solution, it can get complex. I wanted to build an admin tool that could extract meaningful information from NetSuite.</p><p>It should keep me up to date with what are the new objects and errors in the system. Not only should it notify me about new errors, but it should also include the script&apos;s prior execution logs along with where the error occurred in the file. Very handy when you develop in TypeScript, but the error&apos;s call stack refers to lines in the JavaScript file. &#xA0;I should be able to search for errors or any content across all execution logs, not just by script. I should also be able to see large amounts of data at a time instead of paging thru 25 execution logs or 10 concurrency request logs at a time. </p><p>For an SSS_TIME_LIMIT_EXCEEDED error on a RESTlet, it should be able to show the profiler details of the RESTlet that started execution 300+ seconds before the error occurred via the APM&apos;s SuiteScript Analysis data. &#xA0;Yes, the RESTlet runner script really did take 361.127 seconds on the first step of its work which was to identify records to process, but NetSuite put the kabash on the script before it could actually do any work.</p><p>It should do what Salto has been able to do with SDF objects and configurations, but at a broader perspective. It should give a heatmap of the average concurrency to help identify optimal integration schedules, instead of just the peak concurrency heatmap. &#xA0;Yes, that data is there, but NetSuite decided not to show it. How about the last login timestamps for all active integrations, tokens and users.</p><p>You should be able to explore with ease. The interface should be intuitive with modals and other modern UI elements. You should be able to quickly open up related information in a new tab. </p><p>Of even greater value is that it should aid a technical person to quickly come up to speed with any NetSuite instance that is new to them. Yes, there really are 17 people with Administrator access in the account. This is just one of many actionable insights. Think &quot;Suiteness&quot; from SuiteWorld 2023.</p><p>Is SuiteTools there yet? It does include a bulk of the above. But it is not there. Nor could it get there as it was. &#xA0;More to come.</p>]]></content:encoded></item><item><title><![CDATA[Goodbye Docker. Hello Podman.]]></title><description><![CDATA[<p>Podman is a tool for managing <a href="https://opencontainers.org/">OCI</a> (and Docker) containers and pods. Since it is backwards compatible to Docker many create an alias for Docker that executes Podman (&quot;alias docker=podman&quot;).</p><p>Additional features include rootless containers for security plus ease of use and support of pods which are</p>]]></description><link>https://idev.systems/bye-docker-hello-podman/</link><guid isPermaLink="false">62530f18edc0c00453211183</guid><category><![CDATA[DevOps]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Sun, 10 Apr 2022 23:48:25 GMT</pubDate><content:encoded><![CDATA[<p>Podman is a tool for managing <a href="https://opencontainers.org/">OCI</a> (and Docker) containers and pods. Since it is backwards compatible to Docker many create an alias for Docker that executes Podman (&quot;alias docker=podman&quot;).</p><p>Additional features include rootless containers for security plus ease of use and support of pods which are groups of containers that share resources.</p><p>There is currently broad and growing support including:</p><ul><li>many major Linux distros have replaced Docker with Podman</li><li>VS Code with Microsoft&apos;s &quot;Remote - Containers&quot; extension</li><li>MacOS with <a href="https://formulae.brew.sh/formula/podman">Homebrew</a></li><li>Windows with <a href="https://docs.microsoft.com/en-us/windows/wsl/">WSL2</a></li><li>a remote CLI for Podman</li><li><a href="https://github.com/containers/podman-compose">podman-compose</a> as an alternative to Docker Compose</li><li>Nomad <a href="https://github.com/hashicorp/nomad-driver-podman">driver</a></li><li>Kubernetes - Podman can <strong>generate</strong> the Kubernetes YAML files and conversely the ability to <strong>play</strong> Kubernetes YAML files in Podman pods.</li></ul><p>For more info, see <a href="https://podman.io/">https://podman.io/</a>.</p>]]></content:encoded></item><item><title><![CDATA[Resume as Code]]></title><description><![CDATA[<p>After a long day of fighting Word to format my resume, I knew there must be a better way. &#xA0;Since we now keep our infrastructure as code, why not do the same for our resumes. Keep a master branch that has everything and fork for each specific role or</p>]]></description><link>https://idev.systems/resume-as-code/</link><guid isPermaLink="false">624a1a8b650445047485ae33</guid><category><![CDATA[Technology]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 21 Jan 2019 22:31:00 GMT</pubDate><content:encoded><![CDATA[<p>After a long day of fighting Word to format my resume, I knew there must be a better way. &#xA0;Since we now keep our infrastructure as code, why not do the same for our resumes. Keep a master branch that has everything and fork for each specific role or opportunity. Comment out lines or even sections at a time. &#xA0;Have content separate from styling. Easily see the differences between versions or over time.</p><p>Kudos goes to <a href="https://github.com/posquit0">Byungjin Park</a> and his popular GitHub <a href="https://github.com/posquit0/Awesome-CV">posquit0/Awesome-CV</a> project.</p><p>I hardly needed to make changes, and those that I did were simple due to his elegant design and great documentation. I added in a middle name, defaulted the paper size to US Letter and moderated the font sizes by reducing the largest font sizes and increasing the smallest font sizes to give more <em><em>function</em></em> in the <em><em>form over function</em></em> spectrum. I also tweaked the color palette. Yes, I am a Washington Husky :)</p><p>Besides two resumes examples, he also has a cover letter.</p><p>To create your documents, you will need a working <a href="https://www.latex-project.org/get/">LaTeX environment</a>, and to clone either <a href="https://github.com/posquit0/Awesome-CV">his project</a> or <a href="https://github.com/mattplant/Awesome-CV.git">my fork</a>. Then it is as simple as being in the same directory as your .tex file and executing xelatex on it:</p><p><code>git clone https://github.com/mattplant/Awesome-CV.git</code><br><code>cd Awesome-CV/examples/</code><br><code>xelatex resume.tex</code></p><p>Once the test run is complete you can now modify your resume (examples/resume.tex) and it styles (awesome-cv.cls) and rebuild your PDF resume (examples/resume.pdf) with the above <strong><strong>xelatex</strong></strong> command.</p><p>Happy automating!</p>]]></content:encoded></item><item><title><![CDATA[Long live Kubernetes]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Kubernetes is <strong>&quot;An open source system to deploy, scale, and manage containerized applications anywhere.&quot;</strong></p>
<p>From being in the enterprise space for a while now, the last word, &quot;anywhere&quot;, stands out the most. Whether you deploy on-premise, the cloud or hybrid, Kubernetes will keep your options open</p>]]></description><link>https://idev.systems/deploy-environments-not-code/</link><guid isPermaLink="false">624a1a8b650445047485ae3f</guid><category><![CDATA[DevOps]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Thu, 01 Nov 2018 02:30:27 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Kubernetes is <strong>&quot;An open source system to deploy, scale, and manage containerized applications anywhere.&quot;</strong></p>
<p>From being in the enterprise space for a while now, the last word, &quot;anywhere&quot;, stands out the most. Whether you deploy on-premise, the cloud or hybrid, Kubernetes will keep your options open along with preventing vendor lock in.</p>
<p>Built from a decade and half of running production workloads, Google contributed the code to the Cloud Native Computing Foundation (CNCF) and continue to support it. The CNCF &quot;builds sustainable ecosystems and fosters a community around a constellation of high-quality projects that orchestrate containers as part of a microservices architecture.&quot;  For more details, see <a href="https://www.cncf.io/">https://www.cncf.io/</a>.</p>
<p>To get started with Kubernetes, see <a href="https://kubernetes.io/docs/tutorials/">https://kubernetes.io/docs/tutorials/</a>.</p>
<p>To run Kubernetes locally, see <a href="https://github.com/kubernetes/minikube">https://github.com/kubernetes/minikube</a>. Also, the leading cloud providers all have free trials:</p>
<ul>
<li>Google - <a href="https://cloud.google.com/free/">https://cloud.google.com/free/</a></li>
<li>Microsoft - <a href="https://azure.microsoft.com/en-us/free/">https://azure.microsoft.com/en-us/free/</a></li>
<li>AWS - <a href="https://aws.amazon.com/free/">https://aws.amazon.com/free/</a></li>
</ul>
<p>To find along with manage Kubernetes applications, check out Helm <a href="https://helm.sh/">https://helm.sh/</a>.</p>
<p>The <strong>KubeCon</strong> conference will be in Seattle this year in December. For event details, see <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/">https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/</a>.  Sign up soon if you want to go since the seating is limited due to the venue.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[NetSuite Support]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Overall NetSuite support is better than most enterprise support.</p>
<p>They provide a knowledge base called SuiteAnswers. It has many great articles. The only missing category of content that I noticed was the lack of SuiteScript 2.0 documentation and what was there was very basic and incomplete along with straight</p>]]></description><link>https://idev.systems/netsuite-support/</link><guid isPermaLink="false">624a1a8b650445047485ae3e</guid><category><![CDATA[ERP]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Thu, 05 Apr 2018 00:29:47 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Overall NetSuite support is better than most enterprise support.</p>
<p>They provide a knowledge base called SuiteAnswers. It has many great articles. The only missing category of content that I noticed was the lack of SuiteScript 2.0 documentation and what was there was very basic and incomplete along with straight up errors. This might have been fixed by now, but a year ago it was extremely lacking. Another smaller issue is that you need to connect to SuiteAnswers from NetSuite before you can access the content. Not a problem when looking for information from NetSuite. However, this prevents sharing links with others, until you figure out that they need to go to SuiteAnswers themselves via Support &gt; SuiteAnswers before they use the link you provided.</p>
<p>Support tickets are easily created, and they will keep you updated via automated emails along with reaching out to you by phone so be sure you configure and check which phone number is prepopulated on the form before you submit it. Their categorization of issues is pretty good though they could step back from their company organization and look it the categories from an end user perspective. On many occasions the common issues that one experiences with a SaaS solution do not map directly to their categories. To minimize the chance of you losing your description of the issue I would suggest you type up your description before initiating the ticket creation.  On several occasions I have worked on the description online only to lose it with changing some of the above fields or session timeouts.</p>
<p>As for phone support, I believe that there is an additional charge to have it included. Ours is 24/7 and most of the time we can directly get to the first level support with minimal hold times. The main issue that has happened a couple of times for me is for the rare complete outage or for when the authentication service goes down, you cannot log in and create a ticket.  During these times phone hold times go thru the roof. It appears to me like they use a different NetSuite account to manage the support cases. Using your own service to manage support cases might be reasonable for small to medium sized companies, but not appropriate for large international companies. They managed the access to the phone support by having named accounts and allow you to set these via the NetSuite Support Center interface.</p>
<p>Keep you NetSuite account number, their telephone support number along with your account manager&apos;s phone number handy and not in NetSuite so you will have access to it when you need it the most.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Dynamics 365 Resources]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Below are my suggested resources for learning Dynamics 365, Enterprise Edition.</p>
<h2 id="documentation">Documentation</h2>
<p><a href="https://docs.microsoft.com/en-us/dynamics365/unified-operations/fin-and-ops/">https://docs.microsoft.com/en-us/dynamics365/unified-operations/fin-and-ops/</a></p>
<h2 id="book">Book</h2>
<p>Implementing Microsoft Dynamics 365 for Finance and Operations<br>
<a href="https://www.packtpub.com/big-data-and-business-intelligence/implementing-microsoft-dynamics-365-operations">https://www.packtpub.com/big-data-and-business-intelligence/implementing-microsoft-dynamics-365-operations</a></p>
<h2 id="podcast">Podcast</h2>
<p>Dynamics Podcast &#x2013; Experts talking about everything Microsoft<br>
<a href="https://dynpodcast.com/">https://dynpodcast.com/</a></p>
<h2 id="conference">Conference</h2>
<p>Microsoft Ignite<br></p>]]></description><link>https://idev.systems/dynamics-365-resources/</link><guid isPermaLink="false">624a1a8b650445047485ae3d</guid><category><![CDATA[ERP]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Sun, 25 Mar 2018 01:46:14 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Below are my suggested resources for learning Dynamics 365, Enterprise Edition.</p>
<h2 id="documentation">Documentation</h2>
<p><a href="https://docs.microsoft.com/en-us/dynamics365/unified-operations/fin-and-ops/">https://docs.microsoft.com/en-us/dynamics365/unified-operations/fin-and-ops/</a></p>
<h2 id="book">Book</h2>
<p>Implementing Microsoft Dynamics 365 for Finance and Operations<br>
<a href="https://www.packtpub.com/big-data-and-business-intelligence/implementing-microsoft-dynamics-365-operations">https://www.packtpub.com/big-data-and-business-intelligence/implementing-microsoft-dynamics-365-operations</a></p>
<h2 id="podcast">Podcast</h2>
<p>Dynamics Podcast &#x2013; Experts talking about everything Microsoft<br>
<a href="https://dynpodcast.com/">https://dynpodcast.com/</a></p>
<h2 id="conference">Conference</h2>
<p>Microsoft Ignite<br>
September 24-28, 2018 | Orlando, FL<br>
<a href="https://www.microsoft.com/en-us/ignite">https://www.microsoft.com/en-us/ignite</a><br>
For last years recap see <a href="https://flow.microsoft.com/en-us/blog/ignite-2017-recap/">https://flow.microsoft.com/en-us/blog/ignite-2017-recap/</a></p>
<h2 id="usergroup">User Group</h2>
<p>D365UG/AXUG community<br>
<a href="https://www.axug.com/home/welcome">https://www.axug.com/home/welcome</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[SuiteWorld 2017]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>I attended my third NetSuite SuiteWorld in April.  After two years of sitting in the round in San Jose we were at the Sands Expo and Convention Center in Las Vegas having outgrown the San Jose Convention Center.</p>
<p>With the recent purchase, Oracle was the elephant in the room.  Mark</p>]]></description><link>https://idev.systems/suiteworld-2017/</link><guid isPermaLink="false">624a1a8b650445047485ae3c</guid><category><![CDATA[ERP]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 08 May 2017 05:10:36 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>I attended my third NetSuite SuiteWorld in April.  After two years of sitting in the round in San Jose we were at the Sands Expo and Convention Center in Las Vegas having outgrown the San Jose Convention Center.</p>
<p>With the recent purchase, Oracle was the elephant in the room.  Mark Hurd, the CEO of Oracle, did a good job easing concerns, basically saying that they are going to leave NetSuite alone.  It is now a global business unit of Oracle and that there is going to be &quot;NetSuite and Oracle forever&quot;.  And there was actually less legalize instead of more.  Instead of have a full page of forward looking statement there was now only a paragraph.  Oracle&apos;s global infrastructure and localization abilities are already being put to use to expand NetSuite.</p>
<p>They are continuing their development of the Software Development Framework (SDF). With now local development environments and command line tools it is getting closer to modern development best practices.  I am also realizing more of the benefits a modern cloud architecture instead of some competitors hosted on premise solutions.  Our upgrades continue to be smooth with only needing to add our new custom fields to a couple of custom forms an upgrade.  From other experiences, upgrades themselves are large projects that get put off which then makes them even harder since at some point you will need to upgrade.</p>
<p>There new SuiteSuccess tools that are currently for two sub verticals ease the implementation which is definitely needed. Bookstores being one of the sub verticals with my home town <a href="http://ubookstore.com">University Bookstore</a> being an early adopter.</p>
<p>See&#xA0;<a href="http://www.netsuitesuiteworld.com">http://www.netsuitesuiteworld.com</a>&#xA0;for highlights and keynotes.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Intro into Integration]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>I am often surprised how often people create solutions from scratch.  Or start solutioning before they have identified the problem at hand.  Sometimes solutions are built without finding out how it currently being handled.  Did they even talk to the people that are currently doing the work that the new</p>]]></description><link>https://idev.systems/intro-into-integration/</link><guid isPermaLink="false">624a1a8b650445047485ae3b</guid><category><![CDATA[Architecture]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 17 Apr 2017 01:37:43 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>I am often surprised how often people create solutions from scratch.  Or start solutioning before they have identified the problem at hand.  Sometimes solutions are built without finding out how it currently being handled.  Did they even talk to the people that are currently doing the work that the new system is going to support or replace?</p>
<p><strong>Why re-invent the wheel?</strong>  There are well documented reusable patterns for commonly occurring problems.  And your problem is probably not as unique or special as you probably think it is.</p>
<p>Extract, Transform, Load (<strong>ETL</strong>) is a time tested integration pattern of moving data from a source system to a target system where data is transformed--updated for format and/or purpose of target system. Most modern Enterprise Application Integration (<strong>EAI</strong>), Enterprise Service Bus (<strong>ESB</strong>) and Data Warehouse (<strong>DW</strong>) solutions include ETL functionality. EAI is the <strong>middleware</strong> that enables the enterprises applications to be integrated together.  ESB is the communication system between applications in a Service-Oriented Architecture (<strong>SOA</strong>). DW is the central repository of the enterprises data for data analysis and reporting that supports Business Intelligence (<strong>BI</strong>).</p>
<p>Do you need a <strong>near real-time</strong> solution or <strong>batch</strong>?  Should it be <strong>synchronous</strong> or <strong>asynchronous</strong>? And yes, you can have near real-time and asynchronous. Though it requires more work, it can be much more fault and load tolerant.</p>
<p>For specific intergration patterns see  <a href="http://www.enterpriseintegrationpatterns.com/">http://www.enterpriseintegrationpatterns.com/</a> and specifically <a href="http://www.enterpriseintegrationpatterns.com/patterns/messaging/">http://www.enterpriseintegrationpatterns.com/patterns/messaging/</a> where you drill down into each of the <strong>65 patterns</strong>.</p>
<p>For more information I would suggest their books. Their first is <em>Enterprise Integration Patterns</em> which is over 700 pages and was written over a decade ago.  They have also recently released a new book titled <em>37 Things One Architect Knows About IT Transformation - A Chief Architect&apos;s Journey</em> which is available from <a href="https://leanpub.com/37things">https://leanpub.com/37things</a>.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[SuiteWorld 2016]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>NetSuite&apos;s SuiteWorld, their annual conference, is just around the corner on <strong>May 16-19 2016</strong>. It will again be at the San Jose Convention Center which is a well designed facility that is large enough for this event.</p>
<p>They have reserved rooms at many of the local hotels though</p>]]></description><link>https://idev.systems/suiteworld-2016/</link><guid isPermaLink="false">624a1a8b650445047485ae3a</guid><category><![CDATA[NetSuite]]></category><category><![CDATA[ERP]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 25 Apr 2016 02:43:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>NetSuite&apos;s SuiteWorld, their annual conference, is just around the corner on <strong>May 16-19 2016</strong>. It will again be at the San Jose Convention Center which is a well designed facility that is large enough for this event.</p>
<p>They have reserved rooms at many of the local hotels though you can also book your own hotel directly with several good options conveniently located along the light rail route between the airport and the convention center. See <a href="http://www.vta.org/getting-around/schedules/bus-rail">http://www.vta.org/getting-around/schedules/bus-rail</a> for public transit information.</p>
<p>There are several improvements from last year. The main keynotes are now just on Tuesday. On Wednesday they have added SuiteWorld 2016 where you will need to select the one that you are most interested in. Thursday ends a bit earlier in the day at 2pm which makes getting home easier and thus a more productive Friday back at work. They also have a new zone just for developers call DEVLAND which I plan to spend time at in between other events.</p>
<p>They have a nice web-based itinerary for selecting your sessions to help you make the most out of your time. The <strong>sessions are getting filled fast</strong> so I suggest you book soon if you want to go. It will also cost you an additional $200 if you do not register before April 30.</p>
<p>See <a href="http://www.netsuitesuiteworld.com/">http://www.netsuitesuiteworld.com/</a> for more details.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Composer is now at version 1]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Earlier this month <strong>Composer</strong> became version 1.0.0 after five years of development securely replacing [PEAR] as the <strong>de facto dependency manager</strong> for PHP.</p>
<p>It is a great tool for managing project library dependencies like what <strong>npm</strong> does for <strong>Node.js</strong>.  This is different from package managers like <strong>Yum</strong></p>]]></description><link>https://idev.systems/composer-is-now-at-version-1/</link><guid isPermaLink="false">624a1a8b650445047485ae39</guid><category><![CDATA[DevOps]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 11 Apr 2016 05:08:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Earlier this month <strong>Composer</strong> became version 1.0.0 after five years of development securely replacing [PEAR] as the <strong>de facto dependency manager</strong> for PHP.</p>
<p>It is a great tool for managing project library dependencies like what <strong>npm</strong> does for <strong>Node.js</strong>.  This is different from package managers like <strong>Yum</strong> and <strong>Apt</strong> which install libraries globally.</p>
<p>If you are interested in why PEAR needed to be replaced see <a href="https://philsturgeon.uk/php/2012/03/06/packages-the-way-forward-for-php/">https://philsturgeon.uk/php/2012/03/06/packages-the-way-forward-for-php/</a>.</p>
<p>Now assembling and maintaining libraries from <strong>Laravel</strong>, <strong>Symfony</strong>, and <strong>Zend</strong> is a breeze instead of a nightmare.</p>
<p>For basic usage see <a href="https://getcomposer.org/doc/01-basic-usage.md">https://getcomposer.org/doc/01-basic-usage.md</a>. The main file is composer.json which has its schema defined at <a href="https://getcomposer.org/doc/04-schema.md">https://getcomposer.org/doc/04-schema.md</a>.</p>
<p>Its license along with the content on it site are licensed under the liberal <strong>MIT license</strong>.</p>
<p>To install Composer follow the commands from <a href="https://getcomposer.org/download/">https://getcomposer.org/download/</a> which include verifying the installer, though for those also using OS X, then I suggest you use Homebrew to install Composer:</p>
<pre><code>brew update
brew install homebrew/php/composer
</code></pre>
<p>For more details, see <a href="https://getcomposer.org/">https://getcomposer.org/</a>.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Ubuntu in Windows]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Yes, you read that correctly. <a href="http://www.ubuntu.com/">Ubuntu</a> 14.04 LTS built directly into a Windows 10 subsystem. This is native. Not something virtualized or Linux like (e.g. <a href="https://cygwin.com/">Cygwin</a>). It is just there.</p>
<p>Currently it is not available as open source, but it does allow Windows 10 users to have access</p>]]></description><link>https://idev.systems/ubuntu-in-windows/</link><guid isPermaLink="false">624a1a8b650445047485ae38</guid><category><![CDATA[DevOps]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Sat, 09 Apr 2016 03:55:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Yes, you read that correctly. <a href="http://www.ubuntu.com/">Ubuntu</a> 14.04 LTS built directly into a Windows 10 subsystem. This is native. Not something virtualized or Linux like (e.g. <a href="https://cygwin.com/">Cygwin</a>). It is just there.</p>
<p>Currently it is not available as open source, but it does allow Windows 10 users to have access to access all the Ubuntu binary packages thru a Ubuntu (bash) shell in a cmd.exe like window.</p>
<p>They are still working out some of the kinks and it is expected to be upgraded to Ubuntu 16.04 LTS shortly.</p>
<p>For more details, see <a href="https://insights.ubuntu.com/2016/03/30/ubuntu-on-windows-the-ubuntu-userspace-for-windows-developers/">https://insights.ubuntu.com/2016/03/30/ubuntu-on-windows-the-ubuntu-userspace-for-windows-developers/</a>.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Building a Better Web]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://twitter.com/BrendanEich">Brendan Eich</a>, the creator of the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript and Mozilla cofounder</a>, is now working on a new open source browser called <a href="https://www.brave.com/">Brave</a>.</p>
<p>Brave is not only a <strong>faster</strong> and <strong>safer</strong> browser, but it is also trying to reset the ad ecosystem. In <a href="https://www.brave.com/blogpost_1.html">Brendan Eich words</a>, &#x201C;Brave is the only approach</p>]]></description><link>https://idev.systems/building-a-better-web/</link><guid isPermaLink="false">624a1a8b650445047485ae37</guid><category><![CDATA[Technology]]></category><dc:creator><![CDATA[Matt "idev" Plant]]></dc:creator><pubDate>Mon, 14 Mar 2016 00:58:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://twitter.com/BrendanEich">Brendan Eich</a>, the creator of the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript and Mozilla cofounder</a>, is now working on a new open source browser called <a href="https://www.brave.com/">Brave</a>.</p>
<p>Brave is not only a <strong>faster</strong> and <strong>safer</strong> browser, but it is also trying to reset the ad ecosystem. In <a href="https://www.brave.com/blogpost_1.html">Brendan Eich words</a>, &#x201C;Brave is the only approach to the Web that puts users first in ownership and control of their browsing data by blocking trackers by default, with no exceptions.&#x201D;</p>
<p>Beta versions of the browser are available for the desktop (OS X / Windows / Linux), iOS and Android.</p>
<p>For additional information see their <a href="https://www.brave.com/dev_timeline.html">Development Timeline</a> and <a href="https://www.brave.com/FAQ.html">FAQ</a>.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>