<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>developer &#8211; Airtame</title>
	<atom:link href="https://airtame.com/blog/tag/developer/feed/" rel="self" type="application/rss+xml" />
	<link>https://airtame.com/</link>
	<description>Wireless screen mirroring and digital signage &#124; Airtame</description>
	<lastBuildDate>Mon, 13 Jul 2026 20:28:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://airtame.com/wp-content/uploads/2018/06/cropped-airtame-logo-1-32x32.png</url>
	<title>developer &#8211; Airtame</title>
	<link>https://airtame.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>We won a €1.15m EU grant! Here’s how we are gonna use it</title>
		<link>https://airtame.com/blog/horizon-eu-grant/</link>
		
		<dc:creator><![CDATA[Jonas Gyalokay]]></dc:creator>
		<pubDate>Fri, 29 Jun 2018 09:02:35 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[digital signage]]></category>
		<category><![CDATA[grants]]></category>
		<category><![CDATA[open source]]></category>
		<guid isPermaLink="false">https://32e994dd1033e2d92dbce-admin.hardypress.com/?p=673</guid>

					<description><![CDATA[<p>We won a €1.15 million grant from the European Union. Awesome! We're gonna make sure we put it to good use</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/horizon-eu-grant/">We won a €1.15m EU grant! Here’s how we are gonna use it</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We have an exciting announcement! Airtame was recently <a href="http://ec.europa.eu/research/participants/portal/doc/call/h2020/eic-smeinst-2018-2020/1815138-flash_call_info_h2020-eic-smeinst-2-2018_14_03_2018_en.pdf" target="_blank" rel="noopener">awarded a €1.15 million EU grant</a> through Horizon 2020.</p>
<p>Funding is still an essential part of who we are as it helps us speed up the development process of fulfilling our customers’ needs. More than that, it’s a stamp of approval for us and our projects. We applied for the EU grant with a specific focus in mind; unlocking the full potential of professional displays. We think this needs a bit of elaboration, and If you’re not too sure about what Horizon 2020 is, we’ve got you covered there too.</p>
<h2>What is Horizon 2020?</h2>
<p><a href="https://ec.europa.eu/programmes/horizon2020/" target="_blank" rel="noopener">Horizon 2020</a> is the biggest European Union Research and Innovation program in the history of the EU. The program aims to support researchers, organizations, and entrepreneurs, and the goal is to aid promising breakthroughs and discoveries.</p>
<p>Just the name itself is a great story of innovation as it derives from a crowdsourcing campaign. “Horizon 2020” won over more than 1,600 name suggestions, and I think it reflects the story of the funding program. Horizon 2020 looks for businesses and innovators with a promising product who, with the help of funding, can mature and realize their idea. Great ideas come from everywhere and everyone, and we’re proud to have our idea recognized as well.</p>
<p>In the startup world, funding usually comes from VCs, loans, and crowdfunding. But there are other opportunities out there with no obligation to repay, such as the Horizon 2020 grant. The EU grant is what’s called “soft funding”. Soft funding is loans and grants from governmental institutions and generally comes with no requirements or attachments. While we are very grateful for our backers and other types of funding, receiving this grant gives us more freedom to target an important and specific challenge without losing focus on product development and revenue.</p>

<h2>What’s our plan with the funding?</h2>
<p>The EU grant will go towards developing an open integration platform for professional displays. This is something our customers have sought after and asked for, and we want to accelerate the project of giving it to them. With the open integration platform, users can tailor content for their screens from a central, smart platform. Because it’s an open platform, other developers may contribute to its development too.</p>
<p>Airtame at the moment is active screen mirroring which is perfect for presentation mode. But we want to make professional screens easily accessible in other situations too, and make digital signage come alive. Static information, dynamic content or real-time updates. We want to give people the opportunity to share information with the right audience at the right time and in the right situation. By making it accessible to other developers we also ensure that it’s not limited to a certain idea or branch of work. We&#8217;ve already got started with this, and the launch of our <a href="/blog/artful-signage-exhibit-beautiful-art-in-your-workplace/">first beta app integrations</a> with Trello, Google Slides and Unsplash.</p>
<p>Let me hash out a few different scenarios to explain the use cases. Research studies show that <a href="https://airtame.com/blog/artful-signage-exhibit-beautiful-art-in-your-workplace/">looking at art may reduce depression and anxiety</a>. If that’s the case, why not show art to people suffering from those disorders? The infrastructure is not there yet, and that’s where our project comes into play.</p>
<p>Because it’s an open integration platform, developers may contribute to showing the right art, and at the right time, patient-specific works of art, figuring out copyright issues etc. Developers may contribute to tight contribution on professional displays that are location specific in case of emergencies, for example. In the unlikely event of a fire or chemical spill, students or employees will be real-time updated details where to go, what areas to avoid and steps to take.</p>
<p>In a school environment, the platform could also be used for automated messages such as classroom details that show the current subject, next subject, and where students should head.</p>

      <div
         class="air-video  air-video--large"
      >
      
        <div class="air-video__inner">
          <iframe
            class="air-video__player"
            data-loader="youtube"
            data-src="https://youtube-nocookie.com/embed/3HgFhfYAjIE?rel=0&amp;controls=0&amp;showinfo=0"
            width="560"
            height="315"
            frameborder="0"
            allow="encrypted-media"
            data-consent="analytics"
            allowfullscreen
          ></iframe>
        </div>
        
        
      </div>
    
<h2>Putting an end to boring blank screens</h2>
<p>We want to build an infrastructure that makes it easier to share and show information at the right time and in the right context. In many organizations, there are lots of blank screens. Turning those into a more productive platform for digital signage and information sharing will make it easier for many work environments. Notifications, calendar integrations, meetings and events could be shown. Action points for job interviewees, happy (or unhappy) customers, dashboards and KPIs. Those are all possible scenarios with the open SDK we plan to build.</p>
<p>Because of the EU grant, we are able to speed up the process of developing this platform and to invest time and resources in making it even better. It makes us very happy that the EU also thinks that professional displays should be easier to access. Our goal is to deliver a platform for users to share the right message at the right time, with user-friendly, attention-grabbing digital signage.</p>
<h5>We’re on a mission, and we look forward to taking the next steps into the future of wireless technology and digital displays. If you want to join us for the ride – <a href="https://airtame.com/jobs">just reach out</a>.</h5>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/horizon-eu-grant/">We won a €1.15m EU grant! Here’s how we are gonna use it</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Code quality at Airtame</title>
		<link>https://airtame.com/blog/code-quality-at-airtame/</link>
		
		<dc:creator><![CDATA[Airtame]]></dc:creator>
		<pubDate>Thu, 07 Jan 2016 08:56:25 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Code Quality]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[jenkins]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">https://32e994dd1033e2d92dbce-admin.hardypress.com/?p=1057</guid>

					<description><![CDATA[<p>The core of Airtame’s cross-platform streaming software is responsible for capturing a computer’s audio and video output, then encoding and transferring them wirelessly to the Airtame dongle, where the stream is decoded and rendered. The codebase consists of ~20K lines of C, plus a bit of Objective-C and C++, and it is currently being developed [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/code-quality-at-airtame/">Code quality at Airtame</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The core of Airtame’s cross-platform streaming software is responsible for capturing a computer’s audio and video output, then encoding and transferring them wirelessly to the Airtame dongle, where the stream is decoded and rendered.</p>
<p>The codebase consists of ~20K lines of C, plus a bit of Objective-C and C++, and it is currently being developed by a team of four <a href="https://airtame.com/blog/why-join-the-airtame-engineering-tribe/">engineers</a>. Over the past few months, we have focused on stabilizing our software and improving our engineering processes.</p>
<p>This post discusses some of the tools and processes we’ve utilized in an effort to maintain a high standard of code quality and evade the proverbial software tar pit.</p>
<p>Our first line of defense against Bad Code™ is compiling with the -Werror and -Wallflags, which cause compilation to fail in the presence of any warnings. This helps our engineers catch and fix simple mistakes very early in the development process. There’s also something very satisfying about watching dozens of source files being compiled without a single complaint from the compiler.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-1063" src="/wp-content/uploads/2016/01/code-quality-at-airtame-1-2.png" alt="" width="600" height="164" /><div class="air-image__caption">Airtame's core compiles warning-free</div>
      </div>
    
<p>Airtame&#8217;s core compiles warning-freeWe use <a href="https://www.gerritcodereview.com/" target="_blank" rel="noopener">Gerrit</a> for code reviews and <a href="https://jenkins-ci.org/" target="_blank" rel="noopener">Jenkins</a> for continuous integration. When a developer pushes a change to Gerrit, several Jenkins jobs are automatically triggered to analyze our code and provide feedback on the changes.</p>
<p>The first of these jobs executes Qt’s <a href="https://wiki.qt.io/Early_Warning_System" target="_blank" rel="noopener">Simple Sanitizer</a>, which ensures that Git commit messages are well-formed and that committed code does not contain any trailing whitespace characters or conflict markers, among other things.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img decoding="async" class="alignnone size-full wp-image-1064" src="/wp-content/uploads/2016/01/code-quality-at-airtame-2-1.png" alt="" width="600" height="127" /><div class="air-image__caption">Simple Sanitizer keeps our commit messages and source files clean</div>
      </div>
    
<p>While we don’t believe in one definitive “right way” to format C code, we do feel that it is beneficial to use a consistent coding standard (ours is heavily inspired by the <a href="https://www.kernel.org/doc/Documentation/CodingStyle" target="_blank" rel="noopener">Linux kernel coding style</a>). To enforce our coding standard, we run LLVM’s <a href="http://clang.llvm.org/docs/ClangFormat.html" target="_blank" rel="noopener">clang-format</a>, passing its output to a custom Python script which produces an HTML report.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img decoding="async" class="alignnone size-full wp-image-1065" src="/wp-content/uploads/2016/01/code-quality-at-airtame-3-2.png" alt="" width="600" height="76" /><div class="air-image__caption">Improperly-formatted code and clang-format's suggested fix</div>
      </div>
    
<p>The next code quality check is performed by LLVM’s <a href="http://clang-analyzer.llvm.org/scan-build.html" target="_blank" rel="noopener">scan-build</a>, a deep static analyzer with a very nice <a href="https://wiki.jenkins-ci.org/display/JENKINS/Clang+Scan-Build+Plugin" target="_blank" rel="noopener">Jenkins plugin</a>. The beauty of scan-build is that it analyzes all possible paths through the code, enabling us to discover bugs before they materialize as runtime errors. We’ve found that scan-build is particularly good at detecting memory/resource management issues, especially those which are hidden in rarely-triggered edge cases.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1066" src="/wp-content/uploads/2016/01/code-quality-at-airtame-4-2.png" alt="" width="600" height="156" /><div class="air-image__caption">A null pointer dereference identified by scan-build</div>
      </div>
    
<p>At Airtame, automated testing is deeply ingrained in our engineering culture. Every change pushed to Gerrit causes our automated test suite to be executed on Windows, Mac, and Linux. This includes <a href="https://cmocka.org/" target="_blank" rel="noopener">cmocka</a> unit tests of individual modules, as well as <a href="http://pytest.org/latest/" target="_blank" rel="noopener">pytest</a>-driven end-to-end system tests.</p>
<p>We use <a href="https://gcc.gnu.org/onlinedocs/gcc/Gcov.html" target="_blank" rel="noopener">gcov</a> to measure test coverage, passing its output to <a href="http://gcovr.com/" target="_blank" rel="noopener">gcovr</a> to produce a Jenkins-friendly XML file, which allows us to visualize test coverage over time. Our automated tests are absolutely essential to maintaining software quality during rapid development &#8211; they have saved us countless hours of manual testing and are especially useful for exposing platform-specific issues.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1067" src="/wp-content/uploads/2016/01/code-quality-at-airtame-5-2.png" alt="" width="550" height="303" /><div class="air-image__caption">Our test coverage history - still room for improvement!</div>
      </div>
    
<p>We additionally run end-to-end tests through <a href="http://valgrind.org/" target="_blank" rel="noopener">Valgrind</a> and its <a href="https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin" target="_blank" rel="noopener">Jenkins plugin</a> in order to detect memory and threading errors. This is the last of our automated quality checks, and if it succeeds, a +1 Verified vote is applied to the Gerrit change, indicating that it is ready for peer review.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1068" src="/wp-content/uploads/2016/01/code-quality-at-airtame-6-2.png" alt="" width="550" height="323" /><div class="air-image__caption">Successful code quality checks make a change eligible for review</div>
      </div>
    
<p>Code reviews are another integral component of Airtame’s engineering culture. While we won’t dive too deeply into this topic (it could easily warrant its own blog post), suffice to say that we take reviews very seriously and do our best to detect “<a href="http://martinfowler.com/bliki/CodeSmell.html" target="_blank" rel="noopener">code smells</a>” as early as possible. After a change has been peer reviewed, it can be merged via Gerrit. If it passes our manual quality assurance checks, the change is pushed to our alpha testing group, before being promoted to beta, and finally, general availability.</p>
<p>This is just the beginning of Airtame’s code quality journey. As our codebase grows in size and number of contributors, we’ll need to continue adapting our tools and processes.</p>
<h5>We’re always on the lookout for talented engineers who are passionate about writing clean, maintainable code! If this sounds like you, get in touch with us at tech-jobs@airtame.com</h5>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/code-quality-at-airtame/">Code quality at Airtame</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
