Geisel Software https://geisel.software/ en Nitrium https://geisel.software/content/nitrium <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--page.html.twig x field--node--title.html.twig * field--node--page.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Nitrium</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--page.html.twig * field--node--body.html.twig * field--node--page.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ @import url('https://fonts.googleapis.com/css2?family=Lato&family=Mulish:wght@600&display=swap'); .custom-content { background-color: #2c3150; background-image: url('//nitrium.io/wp-content/themes/nitrium/images/hero-background-static.jpg'); background-position: top center; background-repeat: no-repeat; color: #fff; font-family: 'Lato', sans-serif; font-size: 20px; padding: 4rem; } .custom-content h1 { font-family: 'Mulish', sans-serif; font-weight: 600; color: #b5d8f2; } .nitrium-features h2 { font-family: 'Mulish', sans-serif; font-weight: 600; color: #2b4e78; } .nitrium-features > .feature { background-color: #dfdfdf; color: #4c4c4c; border-radius: 6px; margin-top: 1.6rem; margin-bottom: 1.6rem; padding: 2rem; text-align: center; } .nitrium-features .feature div img { margin: 0 3.4rem; } .custom-content .btn-container { text-align: center; } .custom-content .btn-container .btn.btn-primary { color: #fff; background-color: #cd3c64; font-size: 1.4rem; margin-top: 2rem; } @media only screen and (min-width: 1023px) { .nitrium-main { width: 45%; } .nitrium-features { display: flex; } .nitrium-features > .feature { display: flex; flex-direction: column; flex-basis: 500px; flex-grow: 1; flex-shrink: 1; margin-left: 1.4rem; margin-right: 1.4rem; } .nitrium-features > .feature:first-child { margin-left: 0; } .nitrium-features > .feature:last-child { margin-right: 0; } } /*--><!]]>*/ </style><div class="custom-content"> <div class="nitrium-main"><img alt="Nitrium Logo" data-entity-type="" data-entity-uuid="" src="//nitrium.io/wp-content/themes/nitrium/images/logo.svg" /><h1>The secure, reliable, over-the-air device firmware management platform.</h1> <p>Nitrium™ is an Over-The-Air (OTA) device firmware management platform created by GSI that allows you to safely manage and update firmware for your entire fleet of connected devices from a single dashboard. Quickly and easily deploy new features, bug fixes, security updates and more to just a few or up to millions of devices with limited disruption to device performance.</p> </div> <div class="nitrium-features"> <div class="feature"> <div><img alt="" data-entity-type="" data-entity-uuid="" src="//nitrium.io/wp-content/uploads/2022/06/icon-dashboard.svg" /></div> <h2>Quick &amp; Scalable</h2> <p>Nitrium's web-based user interface allows you to quickly and easily upload and manage firmware across many different products and devices for just a few or up to millions of devices.</p> </div> <div class="feature"> <div><img alt="" data-entity-type="" data-entity-uuid="" src="//nitrium.io/wp-content/uploads/2022/06/icon-secure-updates.svg" /></div> <h2>Secure &amp; Reliable</h2> <p>Our "end-to-end" IoT security philosophy allows you to safely push OTA updates knowing you're covered by the latest security practices. Learn more about Nitrium’s end-to-end security here.</p> </div> <div class="feature"> <div><img alt="" data-entity-type="" data-entity-uuid="" src="//nitrium.io/wp-content/uploads/2022/06/icon-rollouts.svg" /></div> <h2>Flexible Rollouts</h2> <p>Easily group your devices by geography, software version or other attributes to customize deployment details liked how and when to deploy for subsets of your entire fleet.</p> </div> </div> <div class="nitrium-features"> <div class="feature"> <div><img alt="" data-entity-type="" data-entity-uuid="" src="//nitrium.io/wp-content/uploads/2022/06/icon-could-storage.svg" /></div> <h2>Easy to Use</h2> <p>Cloud storage provided on the platform eliminates the complexity of uploading and retrieving packages and firmware from your own software solutions.</p> </div> <div class="feature"> <div><img alt="" data-entity-type="" data-entity-uuid="" src="//nitrium.io/wp-content/uploads/2022/06/icon-device-management.svg" /></div> <h2>Valuable Device Data</h2> <p>Live activity dashboard shows live, connected devices, as well as other meta-data useful for metric analysis and device troubleshooting.</p> </div> <div class="feature"> <div><img alt="" data-entity-type="" data-entity-uuid="" src="//nitrium.io/wp-content/uploads/2022/06/icon-sdk.svg" /></div> <h2>Reduced Development Time</h2> <p>Language and architecture specific SDKs help developers write embedded software to communicate with Nitrium servers.</p> </div> </div> <div class="btn-container"><a class="btn btn-primary withendicon" href="https://nitrium.io">Discover Nitrium™</a></div> </div> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--page.html.twig x field--node--uid.html.twig * field--node--page.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/index.php/user/104935" lang="" about="/index.php/user/104935" typeof="schema:Person" property="schema:name" datatype="">afogg</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--page.html.twig x field--node--created.html.twig * field--node--page.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Mon, 07/25/2022 - 18:20</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> Mon, 25 Jul 2022 17:20:35 +0000 afogg 326 at https://geisel.software Our Capabilities https://geisel.software/our-capabilities <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--page.html.twig x field--node--title.html.twig * field--node--page.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Our Capabilities</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--page.html.twig * field--node--body.html.twig * field--node--page.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h1 class="capabilities-header">Our Capabilities</h1> <div class="capabilities-container"> <p class="download-block"><a href="/sites/default/files/Geisel%20Software%20(GSI)%20Overview.pdf"><strong>General Capabilities</strong> <em>Download PDF</em></a></p> <p class="download-block"><a href="/sites/default/files/Geisel%20Software%20(GSI)%20Accelerated%20Computing.pdf"><strong>Accelerated Computing</strong> <em>Download PDF</em></a></p> <p class="download-block"><a href="/sites/default/files/Geisel%20Software%20(GSI)%20UI%20UX%20Capabilities.pdf"><strong>UI/UX</strong> <em>Download PDF</em></a></p> <p class="download-block"><a href="/sites/default/files/Geisel%20Software%20(GSI)%20QA%20Capabilities%20Statement.pdf"><strong>QA</strong> <em>Download PDF</em></a></p> </div> <h2 style="margin-top: 46px;">Questions?</h2> <p><a class="contact-button btn btn-primary" href="https://geisel.software/contact">Contact Us</a></p> <style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ .capabilities-header { background: #ffdd37; padding: 50px 20px; margin-bottom: 30px; font-size: 46px !important; background-image: url(/themes/iotflat/img/dots.png); } .capabilities-container { display: flex; flex-direction: column; } @media screen and (min-width: 600px) { .capabilities-container { display: grid; gap: 30px 40px; grid-template-columns: auto auto; } } .download-block { background: #29343d; padding: 20px; } .download-block a:hover { /* filter: brightness(120%); */ color: #eee; } .download-block strong { font-size: 34px; line-height: 1.1; font-weight: 400; } .download-block em { font-style: normal; font-size: 24px; display: block; font-weight: 300; } .download-block em:after { content: " \e901"; font-family: icomoon; } .contact-button { font-size: 1.7rem; margin-top: 16px; } /*--><!]]>*/ </style></div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--page.html.twig x field--node--uid.html.twig * field--node--page.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/104935" lang="" about="/user/104935" typeof="schema:Person" property="schema:name" datatype="">afogg</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--page.html.twig x field--node--created.html.twig * field--node--page.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Thu, 06/30/2022 - 16:15</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> Thu, 30 Jun 2022 15:15:24 +0000 afogg 323 at https://geisel.software Choosing a Custom Software Development Company https://geisel.software/blog/choosing-custom-software-development-company <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Choosing a Custom Software Development Company</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-header-image--blog.html.twig * field--node--field-header-image.html.twig * field--node--blog.html.twig * field--field-header-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <img src="/sites/default/files/2022-06/choosing%20a%20custom%20software%20drupal%20version%20%283%29_0.png" width="800" height="640" alt="choosing a custom software development company article image" typeof="foaf:Image" class="img-responsive" /> <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/106190" lang="" about="/user/106190" typeof="schema:Person" property="schema:name" datatype="">snorris</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Wed, 06/15/2022 - 16:41</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-blog-category--blog.html.twig * field--node--field-blog-category.html.twig * field--node--blog.html.twig * field--field-blog-category.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">20</div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Your organization has a new project, and you need help from a custom software development company. Your search returns hundreds of possible candidates and you have no idea where to start. So, how do you choose a custom software development company? Not all custom software developers are equal, of course. There’s the good, the bad, and the, well, you know the rest. This guide will summarize the top considerations to weigh when choosing a custom software development company.</p> <p> </p> <p>Here are the top three points to consider when choosing a custom software development company. For the full list, read below.</p> <p><strong>The top three considerations:</strong></p> <p><strong>1. Location<br /> 2. Capabilities<br /> 3. Client Testimonials</strong></p> <h3>1. Location</h3> <p>The location of your software development company will have multiple impacts on the development process and success of your project. Software development companies are categorized as either being onshore or offshore. Onshore developers are located in the country of the client, and offshore developers are not. For U.S. clients, the advantages of onshore development are ease of communication, similar time zones, strong IP and patent protection laws, and industry-leading software quality. The drawbacks of offshore development are potential language and cultural barriers, hidden costs (delays, redevelopment), lack of IP and patent protection, timezone differences, and lower overall software quality. Mask sure to assess whether or not your potential provider conducts 100% of its development onshore.</p> <h3 portfolio="" their="" view="">2. View their portfolio &amp; previous clients</h3> <p>If you’re trying to figure out how capable a software development company is, a great place to start is by looking at some of their previous projects. Most software development companies will have a page on their site containing work case studies. These case studies can also help you decide if the company’s skills are a good match for your needs!</p> <h3>3. Read client testimonials</h3> <p>The results speak for themselves! Don’t just let software development companies tell you how good they are, view their testimonials to get an idea of what their clients think of them. Searching for the developer on Glassdoor will also give you insight into the company’s culture and employee satisfaction. Happy coders = great software!</p> <h3>4. Learn about their capabilities</h3> <p>If you’ve decided that a software development company might be the right fit for you, then it’s a good time to learn about their technical capabilities. What services do they offer? Which software languages and technologies do they specialize in? Who are some of their notable clients? Do they have software architects, UI/UX designers, and project managers in their employ? Additionally, software development companies should display a thorough understanding of security ‘best practices,’ as this is an essential part of creating safe, reliable software. Lastly, development companies should possess a high level of business acumen. Business acumen paired with technical acumen results in solutions that not only work seamlessly from a technical standpoint but also make sense from a business perspective.<br />  </p> <h3>5. Does the developer conduct QA testing?</h3> <p>Good software developers conduct stringent, in-house QA testing on all of their development projects. This process ensures that the product you receive is without bugs or messy code.</p> <p> </p> <h3>The GSI Team</h3> <p>Geisel Software, Inc. is a highly-trained, innovative development team that creates elegantly designed, world-class web, mobile apps, and embedded software that not only works to perfection but scales to fit your business.</p> <p>At Geisel Software, we do more than tell you how great your end result will be, we draw the map, walk you down the path, and deliver a product you’ll be proud of.</p> <p>Set up a free consultation with our team today!</p> <p> </p> <div class="btn-container"><a class="btn btn-primary withendicon" href="https://calendar.google.com/calendar/selfsched?sstoken=UUpXRDkwZ01OUEpVfGRlZmF1bHR8ODY2M2MyZDU0MDliMTlkNzJiMzY1NDdjMGM2ZmM3ZTI">I Want Great Software!</a></div> <p> </p> <p> </p> <p> </p> <p> </p> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <div id="field-language-display"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'form_element' --> <!-- FILE NAME SUGGESTIONS: * form-element--type--item.html.twig x form-element.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/input/form-element.html.twig' --> <div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'form_element_label' --> <!-- FILE NAME SUGGESTIONS: * form-element-label--type--item.html.twig x form-element-label.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/input/form-element-label.html.twig' --> <label class="control-label">Language</label> <!-- END OUTPUT from 'themes/bootstrap/templates/input/form-element-label.html.twig' --> English </div> <!-- END OUTPUT from 'themes/bootstrap/templates/input/form-element.html.twig' --> </div> Wed, 15 Jun 2022 15:41:38 +0000 snorris 322 at https://geisel.software Accelerate Computing Capabilities https://geisel.software/GSI-accelerated-computing <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--pdf-specific-pages.html.twig x field--node--title.html.twig * field--node--pdf-specific-pages.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Accelerate Computing Capabilities</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--pdf-specific-pages.html.twig x field--node--uid.html.twig * field--node--pdf-specific-pages.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/102077" lang="" about="/user/102077" typeof="schema:Person" property="schema:name" datatype="">kwattu</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--pdf-specific-pages.html.twig x field--node--created.html.twig * field--node--pdf-specific-pages.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Wed, 06/15/2022 - 13:48</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--pdf-specific-pages.html.twig * field--node--field-pdf.html.twig * field--node--pdf-specific-pages.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field--label">PDF</div> <div class="field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/file/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://geisel.software/sites/default/files/2022-06/Accelerated%20Computing%20GSI.pdf" type="application/pdf; length=325788" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">Accelerated Computing GSI.pdf</a></span><span class="file-size">318.15 KB</span></span> <!-- END OUTPUT from 'themes/bootstrap/templates/file/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> Wed, 15 Jun 2022 12:48:54 +0000 kwattu 316 at https://geisel.software The National Science Foundation https://geisel.software/clients/national-science-foundation <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--client.html.twig x field--node--title.html.twig * field--node--client.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>The National Science Foundation</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-client-logo--client.html.twig * field--node--field-client-logo.html.twig * field--node--client.html.twig * field--field-client-logo.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-client-logo field--type-image field--label-hidden field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <img src="/sites/default/files/2022-06/NSF_4-Color_bitmap_Logo.png" width="1722" height="1731" alt="National Science Foundation logo" typeof="foaf:Image" class="img-responsive" /> <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--client.html.twig x field--node--uid.html.twig * field--node--client.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/102077" lang="" about="/user/102077" typeof="schema:Person" property="schema:name" datatype="">kwattu</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--client.html.twig x field--node--created.html.twig * field--node--client.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Fri, 06/10/2022 - 17:11</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--client.html.twig * field--node--body.html.twig * field--node--client.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>The National Science Foundation (NSF) is an independent federal agency created by Congress in 1950 "to promote the progress of science; to advance the national health, prosperity, and welfare; to secure the national defense." NSF is vital because we support basic research and people to create knowledge that transforms the future. This type of support:</p> <ul><li>Is a primary driver of the U.S. economy</li> <li>Enhances the nation's security</li> <li>Advances knowledge to sustain global leadership</li> </ul><p>NSF's goals -- discovery, learning, research infrastructure and stewardship -- provide an integrated strategy to advance the frontiers of knowledge, cultivate a world-class, broadly inclusive science and engineering workforce and expand the scientific literacy of all citizens, build the nation's research capability through investments in advanced instrumentation and facilities, and support excellence in science and engineering research and education through a capable and responsive organization.</p> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--comment-node-client--client.html.twig * field--node--comment-node-client.html.twig * field--node--client.html.twig * field--comment-node-client.html.twig x field--comment.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/comment/templates/field--comment.html.twig' --> <section> </section> <!-- END OUTPUT from 'core/modules/comment/templates/field--comment.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> Fri, 10 Jun 2022 16:11:49 +0000 kwattu 315 at https://geisel.software Geisel Software Ranks in the Top 100 on Inc. Magazine’s List of Fastest-Growing Northeast Region Private Companies https://geisel.software/content/geisel-software-ranks-top-100-inc-magazines-list-fastest-growing-northeast-region-private <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--news.html.twig x field--node--title.html.twig * field--node--news.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Geisel Software Ranks in the Top 100 on Inc. Magazine’s List of Fastest-Growing Northeast Region Private Companies</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--news.html.twig x field--node--uid.html.twig * field--node--news.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/102077" lang="" about="/user/102077" typeof="schema:Person" property="schema:name" datatype="">kwattu</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--news.html.twig x field--node--created.html.twig * field--node--news.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Wed, 03/16/2022 - 18:22</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--news.html.twig * field--node--body.html.twig * field--node--news.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b><span lang="EN" style="font-size:15.0pt" xml:lang="EN"><span style="line-height:115%">GEISEL SOFTWARE RANKS IN THE TOP 100 ON <i>INC. </i>MAGAZINE'S<br /> LIST OF FASTEST-GROWING NORTHEAST REGION PRIVATE COMPANIES</span></span></b></span></span></span></p> <p align="center" style="text-align:center"> </p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Companies on the 2022 Inc. 5000 Regionals Northeast list had </b></span></span></span><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>an average growth rate of <span style="background:white">208% p</span>ercent. </b></span></span></span><br />  </p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">Geisel Software, a Massachusetts-based custom software development firm, announced today it has been ranked in the top 100 on <i>Inc. </i>magazine’s third annual Inc. 5000 Regionals Northeast list, the most prestigious ranking of the fastest-growing private companies based in Connecticut, Massachusetts, Maine, New Hampshire, New Jersey, New York, Pennsylvania, Rhode Island, and Vermont. Born of the annual Inc. 5000 franchise, this regional list represents a unique look at the most successful companies within the Northeast region economy’s most dynamic segment– its independent small businesses. </span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">"To be among the fastest-growing private companies is a really quite an honor, especially during difficult times," said Brian Geisel, Chief Executive Officer at Geisel Software. "In the past few years, Geisel Software has seen tremendous growth, a direct result of our team’s innovative approach to tacking some of the toughest technical challenges robotics, medical devices and more. We’re proud to be named an Inc. 5000 company and look forward to continuing this fast-paced growth.”</span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">The companies on this list show a remarkable rate of growth across all industries in the Northeast region. Betwee<span style="background:white">n 2018 and </span>2020, thes<span style="background:white">e private companies had an average growth rate of 208% percent and, in 2020 alone, they added 5,010 jobs and nearly $2.7 billion to the Northeast region’s economy. Companie</span>s based in the New York City and Boston areas had the highest growth rate overall.    </span></span></span></p> <p><span style="font-size:11pt"><span style="background:white"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="color:black" xml:lang="EN">“This year’s Inc. 5000 Regional winners represent one of the most exceptional and exciting lists of America’s off-the-charts growth companies. They’re disrupters and job creators, and all delivered an outsize impact on the economy. Remember their names and follow their lead. These are the companies you’ll be hearing about for years to come,” says Scott Omelianuk, editor-in-chief of<i> </i>Inc.</span></span></span></span></span></p> <p style="margin-right:-6px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b><span lang="EN" style="font-family:&quot;Lato&quot;,sans-serif" xml:lang="EN">About Geisel Software, Inc.</span></b><br /><span lang="EN" style="font-family:&quot;Lato&quot;,sans-serif" xml:lang="EN">Founded in 2011, Geisel Software, Inc. is a custom software development company that designs, develops and deploys groundbreaking software solutions in the fields of robotics, medical devices and more. With special expertise in embedded and application software and a passion for staying ahead of the technology curve, Geisel’s revolutionary thinkers and problem solvers have worked with some of the most visionary companies to deliver world-class web/cloud, mobile, IoT, AI/ML and embedded solutions. Learn more at </span><a href="https://geisel.software" style="color:blue; text-decoration:underline"><span style="font-family:&quot;Lato&quot;,sans-serif">https://geisel.software</span></a><span lang="EN" style="font-family:&quot;Lato&quot;,sans-serif" xml:lang="EN">.</span></span></span></span></p> <p> </p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>More about <i>Inc. </i>and the Inc. 5000 Regionals</b></span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>Methodology</b></span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">The 2022 Inc. 5000 Regional are ranked according to percentage revenue growth when comparing 2018 and 2020. To qualify, companies must have been founded and generating revenue by March 31, 2018. They had to be U.S.-based, privately held, for-profit, and independent—not subsidiaries or divisions of other companies—as of December 31, 2019. (Since then, a number of companies on the list have gone public or been acquired.) The minimum revenue required for 2018 is $100,000; the minimum for 2020 is $1 million. </span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b>About Inc. Media </b></span></span></span></p> <p><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif">The world’s most trusted business-media brand, Inc. offers entrepreneurs the knowledge, tools, connections, and community to build great companies. Its award-winning multiplatform content reaches more than 50 million people each month across a variety of channels including websites, newsletters, social media, podcasts, and print. Its prestigious Inc. 5000 list, produced every year since 1982, analyzes company data to recognize the fastest-growing privately held businesses in the United States. The global recognition that comes with inclusion in the 5000 gives the founders of the best businesses an opportunity to engage with an exclusive community of their peers and the credibility that helps them drive sales and recruit talent.</span></span></span></p> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--comment-node-news--news.html.twig * field--node--comment-node-news.html.twig * field--node--news.html.twig * field--comment-node-news.html.twig x field--comment.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/comment/templates/field--comment.html.twig' --> <section> </section> <!-- END OUTPUT from 'core/modules/comment/templates/field--comment.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> Wed, 16 Mar 2022 18:22:10 +0000 kwattu 308 at https://geisel.software Why Worcester Landing Page https://geisel.software/node/306 <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--full-container.html.twig x field--node--title.html.twig * field--node--full-container.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Why Worcester Landing Page</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--full-container.html.twig x field--node--uid.html.twig * field--node--full-container.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/102429" lang="" about="/user/102429" typeof="schema:Person" property="schema:name" datatype="">shikha</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--full-container.html.twig x field--node--created.html.twig * field--node--full-container.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Mon, 02/14/2022 - 06:39</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--full-container.html.twig * field--node--body.html.twig * field--node--full-container.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>As the second largest city in Massachusetts, Worcester has everything you need and offers a unique vitality. The downtown grid area is booming with new shops, restaurants, and other business.</p> <p>The residential neighborhoods are perfect for families, full of life, and are represented by diverse groups from all over. Worcester offers affordable housing options, green parks, high quality hospitals, proximity to beautiful Lake Quinsigamond — one of the top rowing venues in the country.</p> <p>Worcester is also home to 12 colleges and offers hundreds of dining options (check out one of Worcester’s old train car diners!). Shrewsbury Street is the most popular spot for young people looking to get late night eats, socialize at bars, and shop.</p> <p>Did we mention the city has some gorgeous architecture? Worcester is a city that preserves historic buildings and structures but continues to break ground on amazing new public works projects!</p> <p>Working in Worcester offers close proximity to Boston without the hassle of a long work commute. Just an hour by car or just under 2 hours by train, trips to Boston are quick and easy!</p> <p>The city also hosts a series of outdoor festivals, including Start on the Street, Wormtown Music Festival, StrangeCreek Campout, and the annual Feast of Our Lady of Mount Carmel on Mulberry Street, offering food, live music and entertainment, and craft vendors.</p> <p>Worcester has an art scene for everyone. The Worcester Art Museum has exhibits that will interest everyone from classic to fun and modern. And the Art in the Park series features incredible unique sculptures and murals throughout the city.</p> <p>The city is the state's second largest center for the performing arts. Catch a Broadway show at the Hanover Theater for Performing Arts, listen to the symphony at Tuckerman and Mechanics Hall, or see a band play at the DCU Center!</p> <p>Join the Geisel Software team in our Worcester office!</p> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-image--full-container.html.twig * field--node--field-image.html.twig * field--node--full-container.html.twig * field--field-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-image field--type-image field--label-hidden field--items"> <div class="field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <img src="/sites/default/files/2022-02/7a3d81a7-ae7c-491d-aa76-6d8dc7ee807b.png" width="383" height="619" alt="image" typeof="foaf:Image" class="img-responsive" /> <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-call-to-actions--full-container.html.twig * field--node--field-call-to-actions.html.twig * field--node--full-container.html.twig * field--field-call-to-actions.html.twig * field--link.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-call-to-actions field--type-link field--label-hidden field--item"><a href="/careers">Apply for a job now!</a></div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-backgroud-image--full-container.html.twig * field--node--field-backgroud-image.html.twig * field--node--full-container.html.twig * field--field-backgroud-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-backgroud-image field--type-image field--label-hidden field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <img src="/sites/default/files/2022-02/background-%2812%29.jpg" width="2997" height="1841" alt="background image" typeof="foaf:Image" class="img-responsive" /> <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-footer-image--full-container.html.twig * field--node--field-footer-image.html.twig * field--node--full-container.html.twig * field--field-footer-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-footer-image field--type-image field--label-hidden field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <img src="/sites/default/files/2022-02/why%20love%20worcester%20footer.png" width="1190" height="154" alt="footer-img" typeof="foaf:Image" class="img-responsive" /> <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-footer-text--full-container.html.twig * field--node--field-footer-text.html.twig * field--node--full-container.html.twig * field--field-footer-text.html.twig * field--string-long.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-footer-text field--type-string-long field--label-hidden field--item">Make yourself at home here.</div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> Mon, 14 Feb 2022 06:39:42 +0000 shikha 306 at https://geisel.software Stop Doing Inheritance Wrong! https://geisel.software/blog/stop-doing-inheritance-wrong <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Stop Doing Inheritance Wrong!</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-header-image--blog.html.twig * field--node--field-header-image.html.twig * field--node--blog.html.twig * field--field-header-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-header-image field--type-image field--label-hidden field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <img src="/sites/default/files/2021-12/Inheritance%20blog%20image_0.png" width="800" height="534" alt="Stop Doing Inheritance Wrong" typeof="foaf:Image" class="img-responsive" /> <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/106188" lang="" about="/user/106188" typeof="schema:Person" property="schema:name" datatype="">jmeunier</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Fri, 12/17/2021 - 14:54</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-blog-category--blog.html.twig * field--node--field-blog-category.html.twig * field--node--blog.html.twig * field--field-blog-category.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-blog-category field--type-entity-reference field--label-hidden field--item">127</div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Object-oriented programming (OOP) can be hard, I admit it. I remember long ago being taught OOP in an undergrad class and not really getting it. I also remember the first C++ book I read and how confusing I found it. But over the years I finally figured it out. In grad school I studied programming languages and implemented a few languages of my own. I have taught OOP at the university level and I’m a professional software engineer. I use OOP every day.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Everyone who’s familiar with OOP understands classes, methods, and to a lesser degree, encapsulation. Those are the first things you learn in your undergrad OOP class. Then there are more big words like overloading, inheritance, overriding, and polymorphism where if you have class A and class B and B inherits from A and there are methods in A and methods in B, and well, things start to get confusing.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Again, OOP can be hard.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Just recently I looked up the syntax for how to run a concurrent thread in Python because, well, even professional software engineers Google things. However, many of the examples I saw left me in dismay: they used inheritance for a simple thread example (which by itself isn’t necessarily bad) but they used inheritance improperly. Before I go into that more, let’s have a look at what inheritance is.</span></span></span></span></span></span></p> <h2 style="margin-top:19px; margin-bottom:8px"><span style="font-size:16pt"><span style="page-break-after:auto"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span style="font-weight:normal"><a name="_6s6n44rc0xem" id="_6s6n44rc0xem"></a><span lang="EN" style="font-family:Merriweather" xml:lang="EN">1. What is inheritance?</span></span></span></span></span></span></h2> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Inheritance in an object-oriented program is about <i>identity</i>. It specifies a relationship between two classes that declares one of them to be the <i>parent class </i>or <i>superclass</i>, and the other one to be the <i>child class </i>or <i>subclass</i>. </span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">An effect of that is that the subclass inherits the properties of the parent class. The subclass is also allowed to add its own properties, thereby extending the parent class.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">What does inheritance actually mean?</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Inheritance declares a subclass to be a more specialized version of the superclass.</span></span></span></b></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Most of you who learned OOP probably read that statement in a book or heard it in lecture, and you might even have it in your class notes. That’s the fundamental essence of inheritance and it’s extremely important, yet many programmers get it wrong.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Say I have a class called <b>Computer</b> with the two public methods <b>powerOn</b> and <b>compute</b>. Then I create a subclass of <b>Computer</b> called <b>Laptop</b> and add the public methods <b>openLid</b> and <b>closeLid</b> to it. This UML diagram describes that relationship:</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="UML diagram showing Laptop as a subclass of Computer." data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:133px; height:292px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">There are important things to know about a UML inheritance diagram:</span></span></span></span></span></span></p> <ul><li style="margin-top:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">The arrow points from subclass to superclass: in this diagram <b>Laptop</b> is a subclass of <b>Computer</b>, and <b>Computer</b> is a superclass of <b>Laptop</b>.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">It shows an <i>is-a</i> (or <i>is-an</i>) relationship, whereby an instance of the subclass automatically <i>is-an</i> instance of the superclass. A <b>Laptop</b> <i>is-a</i> <b>Computer</b>.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">The flow of information in the diagram goes against the arrow. In this diagram it goes from <b>Computer</b> to <b>Laptop</b> (more on this later).</span></span></span></span></span></span></li> <li style="margin-bottom:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">No information flows in the direction of the arrow, from <b>Laptop</b> to <b>Computer</b> (more on this later).</span></span></span></span></span></span></li> </ul><p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Therefore this specific <b>Computer</b>/<b>Laptop</b> diagram shows a few things:</span></span></span></span></span></span></p> <ul><li style="margin-top:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Every instance of <b>Computer</b> can use the two methods <b>powerOn</b> and <b>compute</b>.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Every instance of <b>Laptop</b> can also use the two methods <b>powerOn</b> and <b>compute</b> because the <b>Laptop</b> class is a subclass of the <b>Computer</b> class and it inherits those two public methods from the <b>Computer</b> class.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Every instance of <b>Laptop</b> can also use the two methods <b>openLid</b> and <b>closeLid</b>.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">The <b>Computer</b> class doesn’t know anything about the <b>Laptop</b> class and therefore can’t call its <b>openLid</b> and <b>closeLid</b> methods.</span></span></span></span></span></span></li> <li style="margin-bottom:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Every <b>Laptop</b> is a <b>Computer</b> but not every <b>Computer</b> is a <b>Laptop</b>.</span></span></span></span></span></span></li> </ul><p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:288px; height:187px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">These are some consequences of using inheritance:</span></span></span></span></span></span></p> <ul><li style="margin-top:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">A subclass automatically inherits all the non-private methods declared in the superclass. This is what I’ll call <b><i>the most visible consequence</i></b>.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Any variable that can hold an instance of the superclass can also hold an instance of the subclass. If you call one of the superclass methods on that variable, it will get dispatched to the appropriate method in either the superclass or the subclass, depending on the actual runtime type of the instance. This effect is called <i>polymorphism</i>, and it’s often an important motivation for using inheritance in the first place. I won’t discuss this any more here.</span></span></span></span></span></span></li> <li style="margin-bottom:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">I’ve saved the most important consequence for last. I mentioned it already earlier in this section, and even put it on its own line and in bold. I’m going to call it <b><i>the most important consequence</i></b> and it has to do with identity. Here I make it a little more specific than the previous way I wrote it:<br /><b>An instance of the subclass is <i>a special kind</i> of whatever the superclass is</b>.<br /> As an example, a <b>Laptop</b> isn’t just a <b>Computer</b>, it’s a <i>special kind</i> of <b>Computer</b> — in this case it’s one that can open and close its lid.</span></span></span></span></span></span></li> </ul><p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">That last point, <i>the most important consequence</i>, has nothing to do with C++ or Python or Java or compiled code or UML. It’s a statement about the model you’re creating, about how you’re choosing to represent some part of the real world in software. If <i>the most important consequence</i> doesn’t apply to your model as a natural consequence of the inheritance relationship you’ve created, you need to find out why and fix it.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Making a model consistent with reality is helpful for a number of reasons:</span></span></span></span></span></span></p> <ul><li style="margin-top:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Others who read your program will surely have the same mental model of the class relationship and will understand the program model easier.</span></span></span></span></span></span></li> <li style="margin-bottom:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Augmenting the model will work the same in code as it does in the real world. For example, with my <b>Computer</b> &amp; <b>Laptop</b> class relationship I don’t have to think too hard about how to add a <b>TabletLaptop</b> class or a <b>MainframeComputer</b> class.</span></span></span></span></span></span></li> </ul><p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Does a model absolutely need to be consistent with reality? No, it doesn’t. A program doesn’t ever refuse to run just because it represents a bad model. This is one of the difficult aspects of programming: sometimes it can be hard to get the model right. And of course sometimes there is no real-world analog of what you’re modeling in software. Is <b>ClassB extends ClassA</b> a relationship that’s consistent with the real world? The question is invalid. And finally, sometimes you may not know the proper way to model something — but here is one of the many joys of programming and where you find some of the science in computer science: just experiment with it, and if it doesn’t work then change your experiment and try again.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">So far, though, this seems pretty easy, right? Of course every laptop is a computer. Good inheritance designs <i>should</i> make sense. Not everyone gets it right, though.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Summary: Inheritance declares a subclass to be <i>a more specialized version</i> of the superclass.</span></span></span></span></span></span></p> <h2 style="margin-top:19px; margin-bottom:8px"><span style="font-size:16pt"><span style="page-break-after:auto"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span style="font-weight:normal"><a name="_fk5nml4xiqln" id="_fk5nml4xiqln"></a><span lang="EN" style="font-family:Merriweather" xml:lang="EN">2. Points and Circles</span></span></span></span></span></span></h2> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Several years ago I was reviewing textbooks for a Java course I was to be teaching and I found a book by a popular group of authors that used the following example of inheritance, or something very close to it. Don’t worry much about the constructors or methods, but check out the inheritance relationship between these two classes:</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="Python class inheritance example showing Circle inheriting from Point." data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:437px; height:466px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">The authors went on to discuss how the <b>Circle</b> class inherits the <b>Point</b> class’s <b>translate</b> method, and so translating a <b>Circle</b> is no different from translating a <b>Point</b>. Inheritance at its finest! The authors were clearly exploiting <i>the most visible consequence of inheritance</i> in order to inherit the <b>Point</b> class’s <b>translate</b> method into the <b>Circle</b> class. It is a good example to show how that specific mechanism of method inheritance works, <b><i>BUT IT’S A TERRIBLE EXAMPLE OF INHERITANCE.</i></b></span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Right here, this line:</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="public class Circle extends Point" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:296px; height:29px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">means: <i>In this program universe, all <b>Circles</b> are <b>Points</b></i>.</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:134px; height:221px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Anyone who knows anything about geometry can see the problem immediately: circles aren’t points. If we remember <i>the most important consequence</i> of inheritance, then according to this model if you’re a <b>Circle</b> you are <i>a special kind of </i><b>Point</b>, and what makes you special is that you have a radius. A radius isn’t just a number, it implies a special meaning: by having a radius it means that you have an infinite number of points all located the same distance from your center point. So by being a <b>Circle</b> not only are you a special kind of <b>Point</b>, but you’re one that’s made up of an infinite number of points (and I guess those points could be circles, too). It requires a lot of mental gymnastics to even begin to reconcile the inconsistencies between this model and reality. The coding might be “correct” — the program runs just as the programmer wanted — but the model is very wrong.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">What’s the proper way to relate <b>Point</b> and <b>Circle</b>? Composition. A <b>Circle</b> should <i>contain</i> a <b>Point</b> (it’s the center point). This is the common <i>has-a</i> relationship. That’s how an actual circle is defined in the real world, after all.</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:134px; height:243px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">And I’ve written the class in case you want to see it.</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:428px; height:274px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">There is added complexity here because now the <b>Circle</b> class needs a <b>centerPoint</b> member variable and it needs to delegate its <b>translate</b> method to the <b>centerPoint</b>, but that added complexity is warranted because now the model makes sense.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Still not convinced? What if the <b>Point</b> class were a subclass of a <b>Shape</b> class that has a <b>surfaceArea</b> method in it. Ok, that’s doable: we can override that method so that a <b>Circle</b> has surface area </span></span></span><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Cardo">π</span></span></span><i><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">r</span></span></span></i><sup><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">2</span></span></span></sup><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather"> and a <b>Point</b> has surface area 0. Now I add a <b>LineSegment extends Shape</b> class that contains two <b>Point</b> instances as its endpoints (the class below might make it easier to understand what I’m talking about). What should the surface area of a <b>LineSegment</b> be? Geometrically speaking it should be 0. But what if I use two <b>Circle</b> instances as the end points of the <b>LineSegment</b>? Those don’t have a surface area of 0. What do I do now, just ignore the surface area of the <b>Circles</b> and return 0? Or return the sum of the areas of the circles?</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:572px; height:296px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">This poorly designed model is forcing us to ask questions that we really shouldn’t need to ask and causing unnecessary problems. Unnecessary problems cause unnecessary development delays and also lead to bugs that would otherwise be avoidable.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">In this section I’ve said a lot about something that was just one example in a voluminous textbook. I worry, though, that too many programmers came away from that example with a poor understanding of inheritance (even just one programmer would be too many programmers). My motivation here is to help you understand that good modeling is crucial to good programming.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Summary: Why do I dislike the <b>Circle extends Point</b> example? Because it’s a bad model.</span></span></span></span></span></span></p> <h2 style="margin-top: 19px; margin-bottom: 6px;"><span style="font-size:14pt"><span style="page-break-after:auto"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span style="color:#434343"><span style="font-weight:normal"><a name="_ou336wl1m8lb" id="_ou336wl1m8lb"></a></span></span></span></span></span></span><span style="font-size:16pt"><span style="page-break-after:auto"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span style="font-weight:normal"><span lang="EN" style="font-family:Merriweather" xml:lang="EN">3. Threads and ToyRobot</span></span></span></span></span></span></h2> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">As I read through a number of Python threading examples online I saw that each was a little different, but many of them shared one characteristic: each created a class that inherited from the <b>Thread</b> class for the sole purpose of inheriting one of its methods. This is exploitation of <i>the most visible consequence</i> of inheritance. That ended up making the model wrong in each of the examples.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">I’ll distill the multiple examples into this one <b>ToyRobot</b> class in Python:</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:246px; height:240px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">By extending the <b>Thread</b> class the ToyRobot class inherits the <b>Thread</b> class’s <b>start</b> method. Ok, so it works. The thread runs and the <b>ToyRobot</b> instance does something concurrently.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">But this inheritance relationship is inherently wrong.</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:134px; height:220px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Much like saying that every <b>Circle</b> is a special kind of <b>Point</b>, here in this program universe every <b>ToyRobot</b> is a special kind of <b>Thread</b>.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">This is the wrong way to use inheritance because the model is wrong. The only time you should extend the <b>Thread</b> class is when you’re creating a new and special kind of <b>Thread</b>.</span></span></span></span></span></span></p> <ul><li style="margin-top:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">A <b>WatchdogThread</b> is a special kind of <b>Thread</b>.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">A <b>WeaklyReferencedThread</b> is a special kind of <b>Thread</b>.</span></span></span></span></span></span></li> <li style="margin-bottom:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">A <b>BackgroundThread</b> is a special kind of <b>Thread</b>.</span></span></span></span></span></span></li> </ul><p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">A <b>ToyRobot</b> , though, is <i>not</i> a special kind of <b>Thread</b>. It’s a special kind of <b>Toy</b>. Or it’s a special kind of <b>Robot</b>. Or it’s a special kind of <b>ArtificialHumanoid</b>. There are many things a <b>ToyRobot</b> is a special kind of, but <b>Thread</b> is not one of them.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">How should you create a concurrently running <b>ToyRobot</b> instance? Again, use composition. A <b>ToyRobot</b> <i>contains</i> a <b>Thread</b>:</span></span></span></span></span></span></p> <p align="center" style="text-align:center"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-family:Merriweather" xml:lang="EN"><img alt="" data-entity-type="" data-entity-uuid="" src="data:image/png;base64,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" style="width:352px; height:258px" /></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">The only criticism one can level against this version of the program is that, similar to the corrected <b>Circle</b> class I discussed earlier, it’s more complex than the previous <b>ToyRobot (Thread)</b> example — but you shouldn’t strive to make your program as simple as possible in the first place.</span></span></span><a href="http://wiki.c2.com/?PrematureOptimization"> </a><a href="http://wiki.c2.com/?PrematureOptimization"><span style="font-size:12.0pt"><span style="line-height:115%"><span style="font-family:Merriweather"><span style="color:#1155cc">Some consider that to be a form of optimization, and it’s something you shouldn’t address until after you’ve determined that it’s a problem</span></span></span></span></a><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">. Instead, make your program readable. Make it debuggable. Make it extendable. Make it testable. Make it understandable. And sometimes you have to make it a little longer in order to do that.</span></span></span></span></span></span></p> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Summary: Why do I dislike the <b>ToyRobot (Thread)</b> example? Because readers will get the impression that it’s the way threading should be done.</span></span></span></span></span></span></p> <div align="center" style="text-align:center"> <hr align="center" size="2" width="100%" /></div> <p style="margin-top:16px; margin-bottom:16px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">What would I like you to take away from this article?</span></span></span></span></span></span></p> <ul><li style="margin-top:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Don’t</span></span></span></b><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather"> use inheritance just to get access to another class’s methods if it results in an incorrect model.</span></span></span></span></span></span></li> <li style="margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Do</span></span></span></b><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather"> use inheritance to specify a fundamental and invariant identity relationship between classes.</span></span></span></span></span></span></li> <li style="margin-bottom:16px; margin-left:8px"><span style="font-size:11pt"><span style="line-height:115%"><span style="font-family:Arial,sans-serif"><b><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather">Do</span></span></span></b><span lang="EN" style="font-size:12.0pt" xml:lang="EN"><span style="line-height:115%"><span style="font-family:Merriweather"> create good, logical, clean, readable, maintainable classes and class hierarchies. It shows that you understand the problem domain, and it shows that you understand software development.</span></span></span></span></span></span></li> </ul></div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <div id="field-language-display"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'form_element' --> <!-- FILE NAME SUGGESTIONS: * form-element--type--item.html.twig x form-element.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/input/form-element.html.twig' --> <div class="form-item js-form-item form-type-item js-form-type-item form-item- js-form-item- form-group"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'form_element_label' --> <!-- FILE NAME SUGGESTIONS: * form-element-label--type--item.html.twig x form-element-label.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/input/form-element-label.html.twig' --> <label class="control-label">Language</label> <!-- END OUTPUT from 'themes/bootstrap/templates/input/form-element-label.html.twig' --> English </div> <!-- END OUTPUT from 'themes/bootstrap/templates/input/form-element.html.twig' --> </div> Fri, 17 Dec 2021 14:54:23 +0000 jmeunier 304 at https://geisel.software Crop One https://geisel.software/clients/crop-one <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--client.html.twig x field--node--title.html.twig * field--node--client.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>Crop One</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-client-logo--client.html.twig * field--node--field-client-logo.html.twig * field--node--client.html.twig * field--field-client-logo.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-field-client-logo field--type-image field--label-hidden field--item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <img src="/sites/default/files/2022-03/crop%20one%20logo.png" width="288" height="150" alt="Crop One Logo" typeof="foaf:Image" class="img-responsive" /> <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' --> <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' --> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--client.html.twig x field--node--uid.html.twig * field--node--client.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/102077" lang="" about="/user/102077" typeof="schema:Person" property="schema:name" datatype="">kwattu</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--client.html.twig x field--node--created.html.twig * field--node--client.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Wed, 11/03/2021 - 13:32</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--client.html.twig * field--node--body.html.twig * field--node--client.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Crop One is a technology-driven indoor hydroponic vertical farming company on a mission to cultivate a sustainable future to meet global demand for fresh, local, and safe food. Through its Plants-First™ approach and industry-leading technology platform, Crop One grows fresh, delicious leafy greens using 95-99% less water than field-grown produce. Because it’s grown in an entirely sealed and controlled indoor environment, growing and harvesting can happen 365 days a year, regardless of season.</p> <p> </p> <p>Crop One sells its fresh, local produce under the Fresh Box Farms label, available at a variety of retailers across southern New England. The company also has a joint venture with Emirates Flight Catering, a partnership that will result in the construction of the world’s largest vertical farm in Dubai. To learn more about Crop One, visit <a href="https://cropone.ag/">cropone.ag</a>.</p> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--comment-node-client--client.html.twig * field--node--comment-node-client.html.twig * field--node--client.html.twig * field--comment-node-client.html.twig x field--comment.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/comment/templates/field--comment.html.twig' --> <section> </section> <!-- END OUTPUT from 'core/modules/comment/templates/field--comment.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> Wed, 03 Nov 2021 13:32:38 +0000 kwattu 303 at https://geisel.software 5-Scary-Security-Stressors https://geisel.software/node/300 <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--landing-page.html.twig x field--node--title.html.twig * field--node--landing-page.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <span>5-Scary-Security-Stressors</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--landing-page.html.twig x field--node--uid.html.twig * field--node--landing-page.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/modules/user/templates/username.html.twig' --> <a title="View user profile." href="/user/102429" lang="" about="/user/102429" typeof="schema:Person" property="schema:name" datatype="">shikha</a> <!-- END OUTPUT from 'core/modules/user/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--landing-page.html.twig x field--node--created.html.twig * field--node--landing-page.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <span>Thu, 10/21/2021 - 10:38</span> <!-- END OUTPUT from 'core/modules/node/templates/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- END OUTPUT from 'themes/bootstrap/templates/system/links.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--landing-page.html.twig * field--node--body.html.twig * field--node--landing-page.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="top-header"> <div class="top-row"> <div class="logo"><img alt="" data-entity-type="" data-entity-uuid="" src="/themes/landing_page_theme/img/scary-logo1.png" /></div> <h1>SECURITY STRESSORS</h1> </div> <p>The IoT is notorious for having weak security, and hackers actively exploit these weaknesses as a jumping off point for all kinds of malicious behavior, which could include distributed denial-of-service attacks, malware distribution, spamming and phishing, click fraud, and credit card theft, among others.</p> <p>We’ve identified five of the scariest IoT security issues you should consider when securing your IoT devices below. How do you measure up?</p> </div> <ul class="steps-listing"><li><span class="lsiting-count"><img alt="" data-entity-type="" data-entity-uuid="" src="/themes/landing_page_theme/img/count1.png" /></span> <div class="lsiting-info"> <h5>Data in flight</h5> <p>Data is vulnerable when it is being transmitted. You probably use HTTPS to encrypt your data inflight, but are you susceptible to DNS attacks that trick your tools to reverting to HTTP? Or have you remembered to protect your MQTT or other protocol streams of data?</p> </div> </li> <li><span class="lsiting-count"><img alt="" data-entity-type="" data-entity-uuid="" src="/themes/landing_page_theme/img/count2.png" /></span> <div class="lsiting-info"> <h5>Anyone could be me</h5> <p>User credentials seem to be an issue everyone wants to ignore. Make sure your devices don’t use default credentials and disable any testing interfaces before your product ships.What seem to be inconsequential credentials are really a gaping hole in your security.</p> </div> </li> <li><span class="lsiting-count"><img alt="" data-entity-type="" data-entity-uuid="" src="/themes/landing_page_theme/img/count3.png" /></span> <div class="lsiting-info"> <h5>If I own it, I can break it</h5> <p>Whether your device is in a home, in a hospital or on the battlefield, as soon as someone else has physical access to it, there is an entirely new threat surface. You should limit physical access to the device when possible. Too many companies also forget things like locking debug ports that make it way too easy for hackers to get in and weaponize a device.</p> </div> </li> <li><span class="lsiting-count"><img alt="" data-entity-type="" data-entity-uuid="" src="/themes/landing_page_theme/img/count4.png" /></span> <div class="lsiting-info"> <h5>In the Cloud</h5> <p>Data that used to be stored on a fixed device with limited access is now stored on a public Internet, vulnerable to attackers from across the world. Securing the Cloud needs to be your first line of defense in a multi-layered security strategy.</p> </div> </li> <li><span class="lsiting-count"><img alt="" data-entity-type="" data-entity-uuid="" src="/themes/landing_page_theme/img/count5.png" /></span> <div class="lsiting-info"> <h5>Life after deployment</h5> <p>Once your device has shipped, you need a way to quickly respond to security issues and update its firmware/software. This allows you to deploy security patches. update bugs that might leave your device vulnerable, and even install new security features.</p> </div> </li> </ul><div class="bottom-block"><span>► Wondering if you're adequately protected? We’ve got you covered. Drop us a message <a href="https://geisel.software/contact">here</a></span></div> </div> <!-- END OUTPUT from 'themes/bootstrap/templates/field/field.html.twig' --> Thu, 21 Oct 2021 09:38:41 +0000 shikha 300 at https://geisel.software