Jekyll2024-03-19T23:04:04+01:00https://danielpocock.com/feed/drupal-planet.xmlDaniel Pocock’s personal blog | Drupal-planetSoftware engineer, Free, Open Source Software Consultant, Innovator, Fedora & Debian Developer
apt-get install more contributors2018-01-24T12:21:11+01:002018-01-24T12:21:11+01:00https://danielpocock.com/apt-get-install-more-contributors<p>Every year I participate in a number of initiatives introducing people to <a href="https://www.gnu.org/philosophy/free-sw.html">free software</a> and helping them make a first contribution. After all, making the first contribution to free software is a very significant milestone on the way to becoming a leader in the world of software engineering. Anything we can do to improve this experience and make it accessible to more people would appear to be vital to the continuation of our communities and the solutions we produce.</p>
<p>During the time I've been involved in mentoring, I've observed that there are many technical steps in helping people make their first contribution that <a href="https://wiki.debian.org/SummerOfCode2018/Projects/WizardForStudentsAndNewInterns">could be automated</a>. While it may seem like creating SSH and <a href="https://keyring.debian.org/creating-key.html">PGP keys</a> is not that hard to explain, wouldn't it be nice if we could whisk new contributors through this process in much the same way that we help people become users with the <a href="https://wiki.debian.org/DebianInstaller/">Debian Installer</a> and <a href="https://wiki.debian.org/Synaptic">Synaptic</a>?</p>
<h3>Paving the path to a first contribution</h3>
<p>Imagine the following series of steps:</p>
<ol>
<li>Install Debian</li>
<li>apt install new-contributor-wizard</li>
<li>Run the new-contributor-wizard (sets up domain name, SSH, PGP, calls apt to install necessary tools, procmail or similar filters, join IRC channels, creates static blog with Jekyll, ...)</li>
<li>write a patch, git push</li>
<li>write a blog about the patch, git push</li>
</ol>
<p>Steps 2 and 3 can eliminate a lot of "<em>where do I start?</em>" head-scratching for new contributors and it can eliminate a lot of repetitive communication for mentors. In programs like GSoC and Outreachy, where there is a huge burst of enthusiasm during the application process (February/March), will a tool like this help a higher percentage of the applicants make a first contribution to free software? For example, if 50% of applicants made a contribution last March, could this tool raise that to 70% in March 2019? Is it likely more will become repeat contributors if their first contribution is achieved more quickly after using a tool like this? Is this an important pattern for the success of our communities? Could this also be a useful stepping stone in the progression from being a user to making a first upload to <a href="https://mentors.debian.net">mentors.debian.net</a>?</p>
<p>Could this wizard be generic enough to help multiple communities, helping people share a plugin for Mozilla, contribute their first theme for Drupal or a package for Fedora?</p>
<h3>Not just for developers</h3>
<p>Notice I've deliberately used the word <em>contributor</em> and not <em>developer</em>. It takes many different people with different skills to build a successful community and this wizard will also be useful for people who are not writing code.</p>
<h3>What would you include in this wizard?</h3>
<p>Please feel free to add ideas <a href="https://wiki.debian.org/SummerOfCode2018/Projects/WizardForStudentsAndNewInterns">to the wiki page</a>.</p>
<p>All projects really need a couple of mentors to support them through the summer and if you are able to be a co-mentor for this or <a href="https://wiki.debian.org/SummerOfCode2018/Projects">any of the other projects (or even proposing your own topic)</a> now is a great time to <a href="https://lists.debian.org/debian-outreach">join the debian-outreach list</a> and <a href="mailto:debian-outreach@lists.debian.org?subject=interested%20in%20mentoring">contact us</a>. You don't need to be a Debian Developer either and several of these projects are widely useful outside Debian.</p>Every year I participate in a number of initiatives introducing people to free software and helping them make a first contribution. After all, making the first contribution to free software is a very significant milestone on the way to becoming a leader in the world of software engineering. Anything we can do to improve this experience and make it accessible to more people would appear to be vital to the continuation of our communities and the solutions we produce. During the time I've been involved in mentoring, I've observed that there are many technical steps in helping people make their first contribution that could be automated. While it may seem like creating SSH and PGP keys is not that hard to explain, wouldn't it be nice if we could whisk new contributors through this process in much the same way that we help people become users with the Debian Installer and Synaptic? Paving the path to a first contribution Imagine the following series of steps: Install Debian apt install new-contributor-wizard Run the new-contributor-wizard (sets up domain name, SSH, PGP, calls apt to install necessary tools, procmail or similar filters, join IRC channels, creates static blog with Jekyll, ...) write a patch, git push write a blog about the patch, git push Steps 2 and 3 can eliminate a lot of "where do I start?" head-scratching for new contributors and it can eliminate a lot of repetitive communication for mentors. In programs like GSoC and Outreachy, where there is a huge burst of enthusiasm during the application process (February/March), will a tool like this help a higher percentage of the applicants make a first contribution to free software? For example, if 50% of applicants made a contribution last March, could this tool raise that to 70% in March 2019? Is it likely more will become repeat contributors if their first contribution is achieved more quickly after using a tool like this? Is this an important pattern for the success of our communities? Could this also be a useful stepping stone in the progression from being a user to making a first upload to mentors.debian.net? Could this wizard be generic enough to help multiple communities, helping people share a plugin for Mozilla, contribute their first theme for Drupal or a package for Fedora? Not just for developers Notice I've deliberately used the word contributor and not developer. It takes many different people with different skills to build a successful community and this wizard will also be useful for people who are not writing code. What would you include in this wizard? Please feel free to add ideas to the wiki page. All projects really need a couple of mentors to support them through the summer and if you are able to be a co-mentor for this or any of the other projects (or even proposing your own topic) now is a great time to join the debian-outreach list and contact us. You don't need to be a Debian Developer either and several of these projects are widely useful outside Debian.A step change in managing your calendar, without social media2017-10-08T19:36:49+02:002017-10-08T19:36:49+02:00https://danielpocock.com/a-step-change-in-your-calendar<p>Have you been to an event recently involving <a href="https://en.wikipedia.org/wiki/Free_software">free software</a> or a related topic? How did you find it? Are you organizing an event and don't want to fall into the trap of using Facebook or Meetup or other services that compete for a share of your community's attention?</p>
<p>Are you keen to find events in foreign destinations related to your interest areas to coincide with other travel intentions?</p>
<p>Have you been concerned when your <a href="https://danielpocock.com/tags/gsoc">GSoC or Outreachy</a> interns lost a week of their project going through the bureaucracy to get a visa for your community's event? Would you like to make it easier for them to find the best events in the countries that welcome and respect visitors?</p>
<p>In many recent discussions about free software activism, people have struggled to break out of the illusion that social media is the way to cultivate new contacts. Wouldn't it be great to make more meaningful contacts by attending more a more diverse range of events rather <a href="https://danielpocock.com/how-did-the-world-ever-work-without-facebook">than losing time on social media</a>?</p>
<h3>Making it happen</h3>
<p>There are already a number of tools (for example, <a href="https://www.drupal.org/search/site/icalendar">Drupal plugins</a> and <a href="https://wordpress.org/plugins/search/icalendar/">Wordpress plugins</a>) for promoting your events on the web and in <a href="https://en.wikipedia.org/wiki/ICalendar">iCalendar format</a>. There are also a number of sites like <a href="https://www.agendadulibre.org/">Agenda du Libre</a> and <a href="http://grical.org/">GriCal</a> who aggregate events from multiple communities where people can browse them.</p>
<p>How can we take these concepts further and make a convenient, compelling and global solution?</p>
<p>Can we harvest event data from a wide range of sources and compile it into a large database using something like <a href="https://www.postgresql.org">PostgreSQL</a> or a NoSQL solution or even a distributed solution like <a href="https://blog.savoirfairelinux.com/en-ca/2015/ring-opendht-a-distributed-hash-table/">OpenDHT</a>?</p>
<p>Can we use big data techniques to mine these datasources and help match people to events without compromising on privacy?</p>
<p>Why not build an automated iCalendar "to-do" list of deadlines for events you want to be reminded about, so you never miss the deadlines for travel sponsorship or submitting a talk proposal?</p>
<p>I've started <a href="https://wiki.debian.org/SocialEventAndConferenceCalendars">documenting an architecture for this on the Debian wiki</a> and proposed it as an <a href="https://wiki.debian.org/Outreachy/Round15/Projects/SocialEventAndConferenceCalendars">Outreachy project</a>. It will also be offered as part of GSoC in 2018.</p>
<h3>Ways to get involved</h3>
<p>If you would like to help this project, please consider <a href="https://lists.debian.org/debian-outreach">introducing yourself on the debian-outreach mailing list</a> and helping to mentor or refer interns for the project. You can also help contribute ideas for the specification through the mailing list or wiki.</p>
<h3>Mini DebConf Prishtina 2017</h3>
<p>This weekend I've been at the <a href="https://wiki.debian.org/DebianEvents/ks/2017/MiniDebConfPrishtina">MiniDebConf in Prishtina, Kosovo</a>. It has been hosted by the <a href="http://www.prishtinahackerspace.org/">amazing Prishtina hackerspace community</a>.</p>
<img src="https://danielpocock.com/sites/danielpocock.com/files/2017-10-07-prishtina-group-photo.jpg"/>
<p>Watch out for future events in Prishtina, the pizzas are huge, but that didn't stop them disappearing before we finished the photos:</p>
<img src="https://danielpocock.com/sites/danielpocock.com/files/2017-10-07-pizzas.jpg"/>Have you been to an event recently involving free software or a related topic? How did you find it? Are you organizing an event and don't want to fall into the trap of using Facebook or Meetup or other services that compete for a share of your community's attention? Are you keen to find events in foreign destinations related to your interest areas to coincide with other travel intentions? Have you been concerned when your GSoC or Outreachy interns lost a week of their project going through the bureaucracy to get a visa for your community's event? Would you like to make it easier for them to find the best events in the countries that welcome and respect visitors? In many recent discussions about free software activism, people have struggled to break out of the illusion that social media is the way to cultivate new contacts. Wouldn't it be great to make more meaningful contacts by attending more a more diverse range of events rather than losing time on social media? Making it happen There are already a number of tools (for example, Drupal plugins and Wordpress plugins) for promoting your events on the web and in iCalendar format. There are also a number of sites like Agenda du Libre and GriCal who aggregate events from multiple communities where people can browse them. How can we take these concepts further and make a convenient, compelling and global solution? Can we harvest event data from a wide range of sources and compile it into a large database using something like PostgreSQL or a NoSQL solution or even a distributed solution like OpenDHT? Can we use big data techniques to mine these datasources and help match people to events without compromising on privacy? Why not build an automated iCalendar "to-do" list of deadlines for events you want to be reminded about, so you never miss the deadlines for travel sponsorship or submitting a talk proposal? I've started documenting an architecture for this on the Debian wiki and proposed it as an Outreachy project. It will also be offered as part of GSoC in 2018. Ways to get involved If you would like to help this project, please consider introducing yourself on the debian-outreach mailing list and helping to mentor or refer interns for the project. You can also help contribute ideas for the specification through the mailing list or wiki. Mini DebConf Prishtina 2017 This weekend I've been at the MiniDebConf in Prishtina, Kosovo. It has been hosted by the amazing Prishtina hackerspace community. Watch out for future events in Prishtina, the pizzas are huge, but that didn't stop them disappearing before we finished the photos:Let’s Encrypt torpedoes cost and maintenance issues for Free RTC2016-07-11T15:34:35+02:002016-07-11T15:34:35+02:00https://danielpocock.com/lets-encrypt-torpedoes-cost-free-rtc<p>Many people have now heard of the <a href="https://www.eff.org/">EFF</a>-backed free certificate authority <a href="https://letsencrypt.org">Let's Encrypt</a>. Not only is it free of charge, it has also introduced a fully automated mechanism for certificate renewals, eliminating a tedious chore that has imposed upon busy sysadmins everywhere for many years.</p>
<p>These two benefits - elimination of cost and elimination of annual maintenance effort - imply that server operators can now deploy certificates for far more services than they would have previously.</p>
<p>The <a href="http://rtcquickstart.org/guide/multi/tls.html">TLS chapter</a> of the <a href="https://rtcquickstart.org">RTC Quick Start Guide</a> has been updated with details about Let's Encrypt so anybody installing SIP or XMPP can use Let's Encrypt from the outset.</p>
<p>For example, somebody hosting basic Drupal or Wordpress sites for family, friends and small community organizations can now offer them all full HTTPS encryption, <a href="https://danielpocock.com/tags/webrtc">WebRTC</a>, SIP and XMPP without having to explain annual renewal fees or worry about losing time in their evenings and weekends renewing certificates manually.</p>
<p>Even people who were willing to pay for a single certificate for their main web site may have snubbed their nose at the expense and ongoing effort of having certificates for their SMTP mail server, IMAP server, VPN gateway, SIP proxy, XMPP server, WebSocket and TURN servers too. Now they can all have certificates.</p>
<h3>Early efforts at SIP were doomed without encryption</h3>
<p>In the early days, SIP messages would be transported across the public Internet in UDP datagrams without any encryption. SIP itself wasn't originally designed for NAT and a variety of home routers were created with "NAT helper" algorithms that would detect and modify SIP packets to try and work through NAT. Sadly, in many cases these attempts to help actually clash with each other and lead to further instability. Conversely, many rogue ISPs could easily detect and punish VoIP users by blocking their calls or even cutting their DSL line. Operating SIP over TLS, usually on the HTTPS port (TCP port 443) has been an effective way to quash all of these different issues.</p>
<p>While the example of SIP is one of the most extreme, it helps demonstrate the benefits of making encryption universal to ensure stability and cut out the "man-in-the-middle", regardless of whether he is trying to help or hinder the end user.</p>
<h3>Is one certificate enough?</h3>
<p>Modern SIP, XMPP and WebRTC require additional services, TURN servers and WebSocket servers. If they are all operated on port 443 then it is necessary to use different hostnames for each of them (e.g. <em>turn.example.org</em> and <em>ws.example.org</em>. Each different hostname requires a certificate. Let's Encrypt can provide those additional certificates too, without additional cost or effort.</p>
<h3>The future with Let's Encrypt</h3>
<p>The initial version of the Let's Encrypt client, <a href="https://certbot.eff.org/">certbot</a>, fully automates the workflow for people using popular web servers such as <a href="https://httpd.apache.org">Apache</a> and <a href="https://nginx.org/">nginx</a>. The <em>manual</em> or <em>certonly</em> modes can be used for other services but hopefully <em>certbot</em> will evolve to integrate with many other popular applications too.</p>
<img src="https://danielpocock.com/sites/danielpocock.com/files/certbot-logo-1A.svg" width="320"/>
<p>Currently, Let's Encrypt's certbot tool issues certificates to servers running on TCP port 443 or 80. These are considered to be a <a href="http://unix.stackexchange.com/questions/16564/why-are-the-first-1024-ports-restricted-to-the-root-user-only">privileged ports</a> whereas any port over 1023, including the default ports used by applications such as SIP (5061), XMPP (5222, 5269) and TURN (5349), are not privileged ports. As long as certbot maintains this policy, it is generally necessary to either run a web server for the domain associated with each certificate or run the services themselves on port 443. <a href="https://letsencrypt.github.io/acme-spec/#rfc.section.7">There are other mechanisms for domain validation</a> and various other clients supporting different subsets of them. Running the services themselves on port 443 turns out to be a good idea anyway as it ensures that RTC services can be reached through HTTP proxy servers who fail to let the <a href="https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_tunneling">HTTP CONNECT method</a> access any other ports.</p>
<p>Many configuration tasks are already scripted during the installation of packages on a GNU/Linux distribution (such as Debian or Fedora) or when setting up services using cloud images (for example, in Docker or OpenStack). Due to the heavily standardized nature of Let's Encrypt and the widespread availability of the tools, many of these package installation scripts can be easily adapted to find or create Let's Encrypt certificates on the target system, ensuring every service is running with TLS protection from the minute it goes live.</p>
<p>If you have questions about Let's Encrypt for RTC or want to share your experiences, please come and discuss it on the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">Free-RTC mailing list</a>.</p>Many people have now heard of the EFF-backed free certificate authority Let's Encrypt. Not only is it free of charge, it has also introduced a fully automated mechanism for certificate renewals, eliminating a tedious chore that has imposed upon busy sysadmins everywhere for many years. These two benefits - elimination of cost and elimination of annual maintenance effort - imply that server operators can now deploy certificates for far more services than they would have previously. The TLS chapter of the RTC Quick Start Guide has been updated with details about Let's Encrypt so anybody installing SIP or XMPP can use Let's Encrypt from the outset. For example, somebody hosting basic Drupal or Wordpress sites for family, friends and small community organizations can now offer them all full HTTPS encryption, WebRTC, SIP and XMPP without having to explain annual renewal fees or worry about losing time in their evenings and weekends renewing certificates manually. Even people who were willing to pay for a single certificate for their main web site may have snubbed their nose at the expense and ongoing effort of having certificates for their SMTP mail server, IMAP server, VPN gateway, SIP proxy, XMPP server, WebSocket and TURN servers too. Now they can all have certificates. Early efforts at SIP were doomed without encryption In the early days, SIP messages would be transported across the public Internet in UDP datagrams without any encryption. SIP itself wasn't originally designed for NAT and a variety of home routers were created with "NAT helper" algorithms that would detect and modify SIP packets to try and work through NAT. Sadly, in many cases these attempts to help actually clash with each other and lead to further instability. Conversely, many rogue ISPs could easily detect and punish VoIP users by blocking their calls or even cutting their DSL line. Operating SIP over TLS, usually on the HTTPS port (TCP port 443) has been an effective way to quash all of these different issues. While the example of SIP is one of the most extreme, it helps demonstrate the benefits of making encryption universal to ensure stability and cut out the "man-in-the-middle", regardless of whether he is trying to help or hinder the end user. Is one certificate enough? Modern SIP, XMPP and WebRTC require additional services, TURN servers and WebSocket servers. If they are all operated on port 443 then it is necessary to use different hostnames for each of them (e.g. turn.example.org and ws.example.org. Each different hostname requires a certificate. Let's Encrypt can provide those additional certificates too, without additional cost or effort. The future with Let's Encrypt The initial version of the Let's Encrypt client, certbot, fully automates the workflow for people using popular web servers such as Apache and nginx. The manual or certonly modes can be used for other services but hopefully certbot will evolve to integrate with many other popular applications too. Currently, Let's Encrypt's certbot tool issues certificates to servers running on TCP port 443 or 80. These are considered to be a privileged ports whereas any port over 1023, including the default ports used by applications such as SIP (5061), XMPP (5222, 5269) and TURN (5349), are not privileged ports. As long as certbot maintains this policy, it is generally necessary to either run a web server for the domain associated with each certificate or run the services themselves on port 443. There are other mechanisms for domain validation and various other clients supporting different subsets of them. Running the services themselves on port 443 turns out to be a good idea anyway as it ensures that RTC services can be reached through HTTP proxy servers who fail to let the HTTP CONNECT method access any other ports. Many configuration tasks are already scripted during the installation of packages on a GNU/Linux distribution (such as Debian or Fedora) or when setting up services using cloud images (for example, in Docker or OpenStack). Due to the heavily standardized nature of Let's Encrypt and the widespread availability of the tools, many of these package installation scripts can be easily adapted to find or create Let's Encrypt certificates on the target system, ensuring every service is running with TLS protection from the minute it goes live. If you have questions about Let's Encrypt for RTC or want to share your experiences, please come and discuss it on the Free-RTC mailing list.WebRTC and communications projects in GSoC 20162016-06-20T17:02:13+02:002016-06-20T17:02:13+02:00https://danielpocock.com/webrtc-sip-xmpp-projects-gsoc-2016<p>This year a <a href="https://wiki.debian.org/SummerOfCode2016/RTCProjects">significant number of students are</a> working on RTC-related projects as part of <a href="http://danielpocock.com/tags/gsoc">Google Summer of Code</a>, under the umbrella of the <a href="https://www.debian.org">Debian Project</a>. You may have already encountered some of them blogging on <a href="http://planet.debian.org">Planet</a> or participating in mailing lists and IRC.</p>
<h3>WebRTC plugins for popular CMS and web frameworks</h3>
<p>There are already a range of pseudo-WebRTC plugins available for CMS and blogging platforms like WordPress, unfortunately, many of them are either not releasing all their source code, locking users into their own servers or requiring the users to download potentially untrustworthy browser plugins (also without any source code) to use them.</p>
<p><a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/MesutCanGurle">Mesut</a> is making plugins for genuinely free WebRTC with open standards like SIP. He has recently created the <a href="http://wpcall.org">WPCall</a> plugin for WordPress, based on the highly successful <a href="http://drucall.org">DruCall plugin for WebRTC in Drupal</a>.</p>
<p><a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/KeerthanaKrishnan">Keerthana</a> has started creating a similar plugin for MediaWiki.</p>
<p>What is great about these plugins is that they don't require any browser plugins and they work with any server-side SIP infrastructure that you choose. Whether you are routing calls into a call center or simply using them on a personal blog, they are quick and convenient to install. Hopefully they will be made available as packages, like the <a href="http://danielpocock.com/improving-drucall-and-jscommunicator-user-interface">DruCall packages for Debian and Ubuntu</a>, enabling even faster installation with all dependencies.</p>
<p>Would you like to try running these plugins yourself and provide feedback to the students? Would you like to help deploy them for online communities using Drupal, WordPress or MediaWiki to power their web sites? Please come and discuss them with us in the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">Free-RTC mailing list</a>.</p>
<p>You can read more about how to run your own SIP proxy for WebRTC in the <a href="http://rtcquickstart.org">RTC Quick Start Guide</a>.</p>
<h3>Finding all the phone numbers and ham radio callsigns in old emails</h3>
<p>Do you have phone numbers and other contact details such as ham radio callsigns in old emails? Would you like a quick way to data-mine your inbox to find them and help migrate them to your address book?</p>
<p><a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/Jaminy">Jaminy</a> is working on Python scripts to do just that. Her project takes some inspiration from the <a href="https://addons.mozilla.org/en-us/firefox/addon/telify/">Telify plugin for Firefox</a>, which detects phone numbers in web pages and converts them to hyperlinks for click-to-dial. The popular <a href="https://github.com/googlei18n/libphonenumber">libphonenumber</a> from Google, used to format numbers on Android phones, is being used to help normalize any numbers found. If you would like to test the code against your own mailbox and address book, please make contact in the <a href="irc://irc.debian.org/debian-data"><em>#debian-data</em></a> channel on <a href="https://wiki.debian.org/IRC/">IRC</a>.</p>
<h3>A truly peer-to-peer alternative to SIP, XMPP and WebRTC</h3>
<p>The team at <a href="https://www.savoirfairelinux.com/">Savoir Faire Linux</a> has been busy building the <a href="https://ring.cx/">Ring</a> softphone, a truly peer-to-peer solution based on the <a href="https://blog.savoirfairelinux.com/en/2015/ring-opendht-a-distributed-hash-table/">OpenDHT distribution hash table technology</a>.</p>
<p>Several students (<a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/SimonD%C3%A9saulniers">Simon</a>, <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/OlivierGr%C3%A9goire">Olivier</a>, <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/NicolasReynaud">Nicolas</a> and <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/AlokAnand">Alok</a>) are actively collaborating on this project, some of them have been fortunate enough to participate at SFL's offices in Montreal, Canada. These GSoC projects have also provided a great opportunity to raise Debian's profile in Montreal ahead of <a href="https://wiki.debconf.org/wiki/DebConf17">DebConf17 next year</a>.</p>
<h3>Linux Desktop Telepathy framework and reSIProcate</h3>
<p>Another group of students, <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/MateusBellomo">Mateus</a>, <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/UditRaikwar">Udit</a> and <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/BalramP">Balram</a> have been busy working on C++ projects involving the <a href="https://telepathy.freedesktop.org">Telepathy framework</a> and the <a href="https://www.resiprocate.org/">reSIProcate SIP stack</a>. Telepathy is the framework behind popular softphones such as <a href="https://live.gnome.org/Empathy">GNOME Empathy</a> that are installed by default on the GNU/Linux desktop.</p>
<p>I previously wrote about starting a new <a href="http://danielpocock.com/enterprise-grade-sip-coming-to-telepathy">SIP-based connection manager for Telepathy based on reSIProcate</a>. Using reSIProcate means more comprehensive support for all the features of SIP, better NAT traversal, IPv6 support, NAPTR support and TLS support. The combined impact of all these features is much greater connectivity and much greater convenience.</p>
<p>The students are extending that work, completing the buddy list functionality, improving error handling and looking at interaction with XMPP.</p>
<h3>Streamlining provisioning of SIP accounts</h3>
<p>Currently there is some manual effort for each user to take the SIP account settings from their Internet Telephony Service Provider (ITSP) and transpose these into the account settings required by their softphone.</p>
<p><a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/PranavJain">Pranav</a> has been working to close that gap, creating a JAR that can be embedded in Java softphones such as <a href="https://jitsi.org">Jitsi</a>, <a href="http://lumicall.org">Lumicall</a> and <a href="http://www.csipsimple.com">CSipSimple</a> to automate as much of the provisioning process as possible. ITSPs are encouraged to test this client against their services and will be able to add details specific to their service through Github pull requests.</p>
<p>The project also hopes to provide streamlined provisioning mechanisms for privately operated SIP PBXes, such as the <a href="http://rtcquickstart.org/guide/multi/pbx.html">Asterisk and FreeSWITCH servers</a> used in small businesses.</p>
<h3>Improving SIP support in Apache Camel and the Jitsi softphone</h3>
<p><a href="http://camel.apache.org/sip.html">Apache Camel's SIP component</a> and the widely known <a href="https://jitsi.org">Jitsi softphone</a> both use the <a href="https://jsip.java.net/">JAIN SIP library for Java</a>.</p>
<p><a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications/NikVaes">Nik</a> has been looking at issues faced by SIP users in both projects, adding support for the <a href="https://tools.ietf.org/html/rfc6914">MESSAGE method</a> in <em>camel-sip</em> and looking at why users sometimes see multiple password prompts for SIP accounts in Jitsi.</p>
<p>If you are trying either of these projects, you are very welcome to come and discuss them on the mailing lists, <a href="http://camel.apache.org/mailing-lists.html">Camel users</a> and <a href="https://jitsi.org/Development/MailingLists">Jitsi users</a>.</p>
<h3>GSoC students at DebConf16 and DebConf17 and other events</h3>
<p>Many of us have been lucky to meet GSoC students attending DebConf, <a href="https://fosdem.org">FOSDEM</a> and other events in the past. From this year, Google now expects the students to complete GSoC before they become eligible for any travel assistance. Some of the students will still be at <a href="https://debconf16.debconf.org">DebConf16</a> next month, assisted by the regular travel budget and the <a href="https://debconf16.debconf.org/about/bursaries/#diversity">diversity funding initiative</a>. Nik and Mesut were already able to travel to Vienna for the recent <a href="https://wiki.debian.org/MiniDebConf">MiniDebConf</a> / LinuxWochen.at</p>
<p>As mentioned earlier, several of the students and the mentors at Savoir Faire Linux are based in <a href="http://wikitravel.org/en/Montreal">Montreal, Canada</a>, the destination for <a href="https://wiki.debconf.org/wiki/DebConf17">DebConf17</a> next year and it is great to see the momentum already building for an event that promises to be very big.</p>
<h3>Explore the world of Free Real-Time Communications (RTC)</h3>
<p>If you are interesting in knowing more about the Free RTC topic, you may find the following resources helpful:</p>
<ul>
<li>Come and join the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">Free-RTC mailing list</a>.</li>
<li>Debian community members are encouraged to <a href="https://rtc.debian.org">set up your SIP/XMPP/WebRTC account</a> and join the <a href="https://lists.debian.org/debian-rtc">debian-rtc list</a> to discuss your experiences using these services.</li>
<li>Start reading the <a href="http://rtcquickstart.org">RTC Quick Start Guide</a> or consider printing <a href="http://rtcquickstart.org/guide/RTCQuickStartGuide.pdf">the PDF version</a> to read on your commute</li>
<li>Try <a href="http://lumicall.org">Lumicall</a> and <a href="https://ring.cx/">Ring</a> apps for Android with your freinds</li>
</ul>
<h3>RTC mentoring team 2016</h3>
<p>We have been very fortunate to build a large <a href="https://wiki.debian.org/SummerOfCode2016/Projects#SummerOfCode2016.2FProjects.2FVoice_Webcam_and_Chat_Communication.Mentoring_team">team of mentors around the RTC-themed projects for 2016</a>. Many of them are first time GSoC mentors and/or new to the Debian community. Some have successfully completed GSoC as students in the past. Each of them brings unique experience and leadership in their domain.</p>
<h3>Helping GSoC projects in 2016 and beyond</h3>
<p>Not everybody wants to commit to being a dedicated mentor for a GSoC student. In fact, there are many ways to help without being a mentor and many benefits of doing so.</p>
<p>Simply looking out for potential applicants for future rounds of GSoC and referring them to the <a href="https://lists.debian.org/debian-outreach">debian-outreach mailing list</a> or an existing mentor helps ensure we can identify talented students early and design projects around their capabilities and interests.</p>
<p>Testing the projects on an ad-hoc basis, greeting the students at DebConf and reading over the <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications">student wikis</a> to find out where they are and introduce them to other developers in their area are all possible ways to help the projects succeed and foster long term engagement.</p>
<p>Google gives Debian a USD $500 grant for each student who completes a project successfully this year. If all 2016 students pass, that is over $10,000 to support Debian's mission.</p>This year a significant number of students are working on RTC-related projects as part of Google Summer of Code, under the umbrella of the Debian Project. You may have already encountered some of them blogging on Planet or participating in mailing lists and IRC. WebRTC plugins for popular CMS and web frameworks There are already a range of pseudo-WebRTC plugins available for CMS and blogging platforms like WordPress, unfortunately, many of them are either not releasing all their source code, locking users into their own servers or requiring the users to download potentially untrustworthy browser plugins (also without any source code) to use them. Mesut is making plugins for genuinely free WebRTC with open standards like SIP. He has recently created the WPCall plugin for WordPress, based on the highly successful DruCall plugin for WebRTC in Drupal. Keerthana has started creating a similar plugin for MediaWiki. What is great about these plugins is that they don't require any browser plugins and they work with any server-side SIP infrastructure that you choose. Whether you are routing calls into a call center or simply using them on a personal blog, they are quick and convenient to install. Hopefully they will be made available as packages, like the DruCall packages for Debian and Ubuntu, enabling even faster installation with all dependencies. Would you like to try running these plugins yourself and provide feedback to the students? Would you like to help deploy them for online communities using Drupal, WordPress or MediaWiki to power their web sites? Please come and discuss them with us in the Free-RTC mailing list. You can read more about how to run your own SIP proxy for WebRTC in the RTC Quick Start Guide. Finding all the phone numbers and ham radio callsigns in old emails Do you have phone numbers and other contact details such as ham radio callsigns in old emails? Would you like a quick way to data-mine your inbox to find them and help migrate them to your address book? Jaminy is working on Python scripts to do just that. Her project takes some inspiration from the Telify plugin for Firefox, which detects phone numbers in web pages and converts them to hyperlinks for click-to-dial. The popular libphonenumber from Google, used to format numbers on Android phones, is being used to help normalize any numbers found. If you would like to test the code against your own mailbox and address book, please make contact in the #debian-data channel on IRC. A truly peer-to-peer alternative to SIP, XMPP and WebRTC The team at Savoir Faire Linux has been busy building the Ring softphone, a truly peer-to-peer solution based on the OpenDHT distribution hash table technology. Several students (Simon, Olivier, Nicolas and Alok) are actively collaborating on this project, some of them have been fortunate enough to participate at SFL's offices in Montreal, Canada. These GSoC projects have also provided a great opportunity to raise Debian's profile in Montreal ahead of DebConf17 next year. Linux Desktop Telepathy framework and reSIProcate Another group of students, Mateus, Udit and Balram have been busy working on C++ projects involving the Telepathy framework and the reSIProcate SIP stack. Telepathy is the framework behind popular softphones such as GNOME Empathy that are installed by default on the GNU/Linux desktop. I previously wrote about starting a new SIP-based connection manager for Telepathy based on reSIProcate. Using reSIProcate means more comprehensive support for all the features of SIP, better NAT traversal, IPv6 support, NAPTR support and TLS support. The combined impact of all these features is much greater connectivity and much greater convenience. The students are extending that work, completing the buddy list functionality, improving error handling and looking at interaction with XMPP. Streamlining provisioning of SIP accounts Currently there is some manual effort for each user to take the SIP account settings from their Internet Telephony Service Provider (ITSP) and transpose these into the account settings required by their softphone. Pranav has been working to close that gap, creating a JAR that can be embedded in Java softphones such as Jitsi, Lumicall and CSipSimple to automate as much of the provisioning process as possible. ITSPs are encouraged to test this client against their services and will be able to add details specific to their service through Github pull requests. The project also hopes to provide streamlined provisioning mechanisms for privately operated SIP PBXes, such as the Asterisk and FreeSWITCH servers used in small businesses. Improving SIP support in Apache Camel and the Jitsi softphone Apache Camel's SIP component and the widely known Jitsi softphone both use the JAIN SIP library for Java. Nik has been looking at issues faced by SIP users in both projects, adding support for the MESSAGE method in camel-sip and looking at why users sometimes see multiple password prompts for SIP accounts in Jitsi. If you are trying either of these projects, you are very welcome to come and discuss them on the mailing lists, Camel users and Jitsi users. GSoC students at DebConf16 and DebConf17 and other events Many of us have been lucky to meet GSoC students attending DebConf, FOSDEM and other events in the past. From this year, Google now expects the students to complete GSoC before they become eligible for any travel assistance. Some of the students will still be at DebConf16 next month, assisted by the regular travel budget and the diversity funding initiative. Nik and Mesut were already able to travel to Vienna for the recent MiniDebConf / LinuxWochen.at As mentioned earlier, several of the students and the mentors at Savoir Faire Linux are based in Montreal, Canada, the destination for DebConf17 next year and it is great to see the momentum already building for an event that promises to be very big. Explore the world of Free Real-Time Communications (RTC) If you are interesting in knowing more about the Free RTC topic, you may find the following resources helpful: Come and join the Free-RTC mailing list. Debian community members are encouraged to set up your SIP/XMPP/WebRTC account and join the debian-rtc list to discuss your experiences using these services. Start reading the RTC Quick Start Guide or consider printing the PDF version to read on your commute Try Lumicall and Ring apps for Android with your freinds RTC mentoring team 2016 We have been very fortunate to build a large team of mentors around the RTC-themed projects for 2016. Many of them are first time GSoC mentors and/or new to the Debian community. Some have successfully completed GSoC as students in the past. Each of them brings unique experience and leadership in their domain. Helping GSoC projects in 2016 and beyond Not everybody wants to commit to being a dedicated mentor for a GSoC student. In fact, there are many ways to help without being a mentor and many benefits of doing so. Simply looking out for potential applicants for future rounds of GSoC and referring them to the debian-outreach mailing list or an existing mentor helps ensure we can identify talented students early and design projects around their capabilities and interests. Testing the projects on an ad-hoc basis, greeting the students at DebConf and reading over the student wikis to find out where they are and introduce them to other developers in their area are all possible ways to help the projects succeed and foster long term engagement. Google gives Debian a USD $500 grant for each student who completes a project successfully this year. If all 2016 students pass, that is over $10,000 to support Debian's mission.Working to pass GSoC2016-06-08T19:11:41+02:002016-06-08T19:11:41+02:00https://danielpocock.com/working-to-pass-gsoc<p><a href="http://danielpocock.com/tags/gsoc">GSoC</a> students have officially been coding since 23 May (about 2.5 weeks) and are almost half-way to the mid-summer evaluation (20 - 27 June). Students who haven't completed some meaningful work before that deadline don't receive payment and in such a large program, there is no possibility to give students extensions or let them try and catch up later.</p>
<p>Every project and every student are different, some are still getting to know their environment while others have already done enough to pass the mid-summer evaluation.</p>
<p>I'd like to share a few tips to help students ensure they don't inadvertently fail the mid-summer evaluation</p>
<h3>Kill electronic distractions</h3>
<p>As a developer of real-time communications projects, many people will find it ironic or hypocritical that this is at the top of my list.</p>
<p>Switch off the mobile phone or put it in silent mode so it doesn't even vibrate. Research has suggested that physically turning it off and putting it out of sight has significant benefits. Disabling the voicemail service can be an effective way of making sure no time is lost listening to a bunch of messages later. Some people may grumble at first but if they respect you, they'll get into the habit of emailing you and waiting for you to respond when you are not working.</p>
<p>Get out a piece of paper and make a list of all the desktop notifications on your computer, whether they are from incoming emails, social media, automatic updates, security alerts or whatever else. Then figure out how to disable them all one-by-one.</p>
<p>Use email to schedule fixed times for meetings with mentors. Some teams/projects also have fixed daily or weekly times for IRC chat. For a development project like GSoC, it is not necessary or productive to be constantly on call for 3 straight months.</p>
<h3>Commit every day</h3>
<p>Habits are a powerful thing. Successful students have a habit of making at least one commit every day. The "C" in GSoC is for <em>Code</em> and commits are a good way to prove that coding is taking place.</p>
<p>GSoC is not a job, it is like a freelance project. There is no safety-net for students who get sick or have an accident and mentors are not bosses, each student is expected to be their own boss. Although Google has started recommending students work full time, 40 hours per week, it is unlikely any mentors have any way to validate these hours. Mentors can look for a commit log, however, and simply won't be able to pass a student if there isn't code.</p>
<p>There may be one day per week where a student writes a blog or investigates a particularly difficult bug and puts a detailed report in the bug tracker but by the time we reach the second or third week of GSoC, most students are making at least one commit in 3 days out of every 5.</p>
<h3>Consider working away from home/family/friends</h3>
<p>Can you work without anybody interrupting you for at least five or six hours every day?</p>
<p>Do you feel pressure to help with housework, cooking, siblings or other relatives? Even if there is no pressure to do these things, do you find yourself wandering away from the computer to deal with them anyway?</p>
<p>Do family, friends or housemates engage in social activities, games or other things in close proximity to where you work?</p>
<p>All these things can make a difference between passing and failing.</p>
<p>Maybe these things were tolerable during high school or university. GSoC, however, is a stepping stone into professional life and that means making a conscious decision to shut those things out and focus. Some students have the ability to manage these distractions well, but it is not for everybody. Think about how leading sports stars or musicians find a time and space to be "in the zone" when training or rehearsing, this is where great developers need to be too.</p>
<p>Some students find the right space in a public library or campus computer lab. Some students have been working in hacker spaces or at empty desks in local IT companies. These environments can also provide great networking opportunities.</p>
<h3>Managing another summer job concurrently with GSoC</h3>
<p>It is no secret that some GSoC students have another job as well. Sometimes the mentor is aware of it, sometimes it has not been disclosed.</p>
<p>The fact is, some students have passed GSoC while doing a summer job or internship concurrently but some have also failed badly in both GSoC and their summer job. Choosing one or the other is the best way to succeed, get the best results and maximize the quality of learning and community interaction. For students in this situation, now it is not too late to make the decision to withdraw from GSoC or the other job.</p>
<p>If doing a summer job concurrently with GSoC is unavoidable, the chance of success can be greatly increased by doing the GSoC work in the mornings, before starting the other job. Some students have found that they actually finish more quickly and produce better work when GSoC is constrained to a period of 4 or 5 hours each morning and their other job is only in the afternoon. On the other hand, if a student doesn't have the motivation or energy to get up and work on GSoC before the other job then this is a strong sign that it is better to withdraw from GSoC now.</p>GSoC students have officially been coding since 23 May (about 2.5 weeks) and are almost half-way to the mid-summer evaluation (20 - 27 June). Students who haven't completed some meaningful work before that deadline don't receive payment and in such a large program, there is no possibility to give students extensions or let them try and catch up later. Every project and every student are different, some are still getting to know their environment while others have already done enough to pass the mid-summer evaluation. I'd like to share a few tips to help students ensure they don't inadvertently fail the mid-summer evaluation Kill electronic distractions As a developer of real-time communications projects, many people will find it ironic or hypocritical that this is at the top of my list. Switch off the mobile phone or put it in silent mode so it doesn't even vibrate. Research has suggested that physically turning it off and putting it out of sight has significant benefits. Disabling the voicemail service can be an effective way of making sure no time is lost listening to a bunch of messages later. Some people may grumble at first but if they respect you, they'll get into the habit of emailing you and waiting for you to respond when you are not working. Get out a piece of paper and make a list of all the desktop notifications on your computer, whether they are from incoming emails, social media, automatic updates, security alerts or whatever else. Then figure out how to disable them all one-by-one. Use email to schedule fixed times for meetings with mentors. Some teams/projects also have fixed daily or weekly times for IRC chat. For a development project like GSoC, it is not necessary or productive to be constantly on call for 3 straight months. Commit every day Habits are a powerful thing. Successful students have a habit of making at least one commit every day. The "C" in GSoC is for Code and commits are a good way to prove that coding is taking place. GSoC is not a job, it is like a freelance project. There is no safety-net for students who get sick or have an accident and mentors are not bosses, each student is expected to be their own boss. Although Google has started recommending students work full time, 40 hours per week, it is unlikely any mentors have any way to validate these hours. Mentors can look for a commit log, however, and simply won't be able to pass a student if there isn't code. There may be one day per week where a student writes a blog or investigates a particularly difficult bug and puts a detailed report in the bug tracker but by the time we reach the second or third week of GSoC, most students are making at least one commit in 3 days out of every 5. Consider working away from home/family/friends Can you work without anybody interrupting you for at least five or six hours every day? Do you feel pressure to help with housework, cooking, siblings or other relatives? Even if there is no pressure to do these things, do you find yourself wandering away from the computer to deal with them anyway? Do family, friends or housemates engage in social activities, games or other things in close proximity to where you work? All these things can make a difference between passing and failing. Maybe these things were tolerable during high school or university. GSoC, however, is a stepping stone into professional life and that means making a conscious decision to shut those things out and focus. Some students have the ability to manage these distractions well, but it is not for everybody. Think about how leading sports stars or musicians find a time and space to be "in the zone" when training or rehearsing, this is where great developers need to be too. Some students find the right space in a public library or campus computer lab. Some students have been working in hacker spaces or at empty desks in local IT companies. These environments can also provide great networking opportunities. Managing another summer job concurrently with GSoC It is no secret that some GSoC students have another job as well. Sometimes the mentor is aware of it, sometimes it has not been disclosed. The fact is, some students have passed GSoC while doing a summer job or internship concurrently but some have also failed badly in both GSoC and their summer job. Choosing one or the other is the best way to succeed, get the best results and maximize the quality of learning and community interaction. For students in this situation, now it is not too late to make the decision to withdraw from GSoC or the other job. If doing a summer job concurrently with GSoC is unavoidable, the chance of success can be greatly increased by doing the GSoC work in the mornings, before starting the other job. Some students have found that they actually finish more quickly and produce better work when GSoC is constrained to a period of 4 or 5 hours each morning and their other job is only in the afternoon. On the other hand, if a student doesn't have the motivation or energy to get up and work on GSoC before the other job then this is a strong sign that it is better to withdraw from GSoC now.GSoC 2016 opportunities for Voice, Video and Chat Communication2016-03-23T04:55:11+01:002016-03-23T04:55:11+01:00https://danielpocock.com/gsoc-2016-voice-video-chat<p>I've advertised a GSoC project under Debian <a href="https://wiki.debian.org/SummerOfCode2016/Projects#SummerOfCode2016.2FProjects.2FVoice_Webcam_and_Chat_Communication.Improving_voice.2C_video_and_chat_communication_with_free_software">for improving voice, video and chat communication with free software</a>.</p>
<p>Replacing Skype, Viber and WhatsApp is a big task, however, it is quite achievable by breaking it down into small chunks of work. I've been <a href="https://project.freertc.org/issues?per_page=100">cataloguing many of the key improvements needed to make Free RTC products work together</a>. Many of these chunks are within the scope of a GSoC project.</p>
<p>If you can refer any students, if you would like to help as a mentor or if you are a student, please come and introduce yourself on the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">FreeRTC mailing list</a>. If additional mentors volunteer, there is a good chance we can have more than one student funded to work on this topic.</p>
<h3>The deadline is Friday, 25 March 2016</h3>
<p>The student application <a href="https://developers.google.com/open-source/gsoc/timeline">deadline</a> is 25 March 2016 19:00 UTC. This is a hard deadline for students. Mentors can still join after the deadline, during the phase where student applications are evaluated.</p>
<p><em>The Google site can be very busy in the hours before the deadline so it is recommended to try and complete the application at least 8 hours before the final deadline.</em></p>
<p>Action items for students:</p>
<ul>
<li>Register yourself on the <a href="https://summerofcode.withgoogle.com/get-started/">Google Site</a> and submit an application. You can submit applications to multiple organizations. For example, if you wish to focus on the <a href="http://drucall.org">DruCall module for Drupal</a>, you can apply to both Debian and Drupal.</li>
<li>Join the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">FreeRTC</a> mailing list and send a message introducing yourself. Tell us which topics you are interested in, which programming languages your are most confident with and which organizations you applied to through the Google site.</li>
<li>Create an application wiki page on <a href="https://wiki.debian.org/SummerOfCode2016/StudentApplications">the Debian wiki</a>. You are permitted to edit the page after the 25 March deadline, so if you are applying at the last minute, just create a basic list of things you will work on and expand it over the following 2-3 days</li>
</ul>
<h3>Introducing yourself and making a strong application</h3>
<p>When completing the application form for Google, the wiki page and writing the email to introduce yourself, consider including the following details:</p>
<ul>
<li>Link to any public profile you have on sites like <a href="https://github.com">Github</a> or bug trackers</li>
<li>Tell us about your programming language skills, list the top three programming languages you are comfortable with and tell us how many years you have used each</li>
<li>other skills you have or courses you have completed</li>
<li>any talks you have given at conferences</li>
<li>any papers you have had published</li>
<li>any conferences you have attended or would like to attend</li>
<li>where you are located and where you study, including timezone</li>
<li>any work experience you already have</li>
<li>any courses, exams or employment commitments you have between 22 May and 24 August</li>
<li>anybody from your local free software community or university who may be willing to help as an additional mentor</li>
</ul>
<h3>Further reading</h3>
<p>Please also see my other project idea, <a href="http://danielpocock.com/gsoc-2016-ham-radio-sdr">for ham radio / SDR projects</a> and my blog <a href="http://danielpocock.com/getting-selected-for-google-summer-of-code-2016">Want to be selected for Google Summer of Code 2016?</a>.</p>
<h3>If you are not selected in 2016</h3>
<p>We try to make contact with all students who apply and give some feedback, in particular, we will try to let you know what to do to increase your chances of selection in the next year, 2017. Applying for GSoC and being interviewed by mentors is a great way to practice for applying for other internships and jobs.</p>I've advertised a GSoC project under Debian for improving voice, video and chat communication with free software. Replacing Skype, Viber and WhatsApp is a big task, however, it is quite achievable by breaking it down into small chunks of work. I've been cataloguing many of the key improvements needed to make Free RTC products work together. Many of these chunks are within the scope of a GSoC project. If you can refer any students, if you would like to help as a mentor or if you are a student, please come and introduce yourself on the FreeRTC mailing list. If additional mentors volunteer, there is a good chance we can have more than one student funded to work on this topic. The deadline is Friday, 25 March 2016 The student application deadline is 25 March 2016 19:00 UTC. This is a hard deadline for students. Mentors can still join after the deadline, during the phase where student applications are evaluated. The Google site can be very busy in the hours before the deadline so it is recommended to try and complete the application at least 8 hours before the final deadline. Action items for students: Register yourself on the Google Site and submit an application. You can submit applications to multiple organizations. For example, if you wish to focus on the DruCall module for Drupal, you can apply to both Debian and Drupal. Join the FreeRTC mailing list and send a message introducing yourself. Tell us which topics you are interested in, which programming languages your are most confident with and which organizations you applied to through the Google site. Create an application wiki page on the Debian wiki. You are permitted to edit the page after the 25 March deadline, so if you are applying at the last minute, just create a basic list of things you will work on and expand it over the following 2-3 days Introducing yourself and making a strong application When completing the application form for Google, the wiki page and writing the email to introduce yourself, consider including the following details: Link to any public profile you have on sites like Github or bug trackers Tell us about your programming language skills, list the top three programming languages you are comfortable with and tell us how many years you have used each other skills you have or courses you have completed any talks you have given at conferences any papers you have had published any conferences you have attended or would like to attend where you are located and where you study, including timezone any work experience you already have any courses, exams or employment commitments you have between 22 May and 24 August anybody from your local free software community or university who may be willing to help as an additional mentor Further reading Please also see my other project idea, for ham radio / SDR projects and my blog Want to be selected for Google Summer of Code 2016?. If you are not selected in 2016 We try to make contact with all students who apply and give some feedback, in particular, we will try to let you know what to do to increase your chances of selection in the next year, 2017. Applying for GSoC and being interviewed by mentors is a great way to practice for applying for other internships and jobs.Want to use free software to communicate with your family in Christmas 2016?2016-01-06T13:25:07+01:002016-01-06T13:25:07+01:00https://danielpocock.com/want-free-rtc-for-christmas-2016<p>Was there a friend or family member who you could only communicate with using a proprietary, privacy-eroding solution like Skype or Facebook this Christmas?</p>
<p>Would you like to be only using completely free and open solutions to communicate with those people next Christmas?</p>
<h3>Developers</h3>
<p>Even if you are not developing communications software, could the software you maintain make it easier for people to use <em>"sip:"</em> and <em>"xmpp:"</em> links to launch other applications? Would this approach make your own software more convenient at the same time? If your software already processes email addresses or telephone numbers in any way, you could do this.</p>
<p>If you are a web developer, could you <a href="http://danielpocock.com/is-webrtc-one-of-your-goals-for-2016">make WebRTC part of your product</a>? If you already have some kind of messaging or chat facility in your website, WebRTC is the next logical step.</p>
<p>If you are involved with the Debian or Fedora projects, please give <a href="https://rtc.debian.org">rtc.debian.org</a> and <a href="https://fedrtc.org">FedRTC.org</a> a go and share your feedback.</p>
<p>If you are involved with other free software communities, please come to the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">Free-RTC mailing list</a> and ask how you can run something similar.</p>
<h3>Everybody can help</h3>
<p>Do you know any students who could work on RTC under <a href="http://danielpocock.com/getting-selected-for-google-summer-of-code-2016">Google Summer of Code, Outreachy</a> or any other student projects? We are particularly keen on students with previous experience of Git and at least one of Java, C++ or Python. If you have contacts in any universities who can refer talented students, that can also help a lot. Please encourage them to contact me directly.</p>
<p>In your workplace or any other organization where you participate, ask your system administrator or developers if they are planning to support SIP, XMPP and WebRTC. Refer them to the <a href="http://rtcquickstart.org">RTC Quick Start Guide</a>. If your company web site is built with <a href="http://www.drupal.org">the Drupal CMS</a>, refer them to the <a href="https://www.drupal.org/project/drucall">DruCall module</a>, it can be installed by most webmasters without any coding.</p>
<p>If you are using Debian or Ubuntu in your personal computer or office and trying to get best results with the RTC and VoIP packages on those platforms, please feel free to join the new <a href="https://lists.debian.org/debian-rtc/">debian-rtc</a> mailing list to discuss your experiences and get advice on which packages to use.</p>
<p>Everybody is welcome to <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">ask questions and share their experiences on the Free-RTC mailing list</a>.</p>
<p>Please also come and talk to us at <a href="http://danielpocock.com/fosdem-2016-rtc-main-track">FOSDEM 2016, where RTC is in the main track again</a>. FOSDEM is on 30-31 January 2016 in Brussels, attendance is free and no registration is necessary.</p>
<p>This <a href="http://danielpocock.com/mission-statement-for-free-rtc">mission</a> <em>can</em> be achieved with lots of people making small contributions along the way.</p>Was there a friend or family member who you could only communicate with using a proprietary, privacy-eroding solution like Skype or Facebook this Christmas? Would you like to be only using completely free and open solutions to communicate with those people next Christmas? Developers Even if you are not developing communications software, could the software you maintain make it easier for people to use "sip:" and "xmpp:" links to launch other applications? Would this approach make your own software more convenient at the same time? If your software already processes email addresses or telephone numbers in any way, you could do this. If you are a web developer, could you make WebRTC part of your product? If you already have some kind of messaging or chat facility in your website, WebRTC is the next logical step. If you are involved with the Debian or Fedora projects, please give rtc.debian.org and FedRTC.org a go and share your feedback. If you are involved with other free software communities, please come to the Free-RTC mailing list and ask how you can run something similar. Everybody can help Do you know any students who could work on RTC under Google Summer of Code, Outreachy or any other student projects? We are particularly keen on students with previous experience of Git and at least one of Java, C++ or Python. If you have contacts in any universities who can refer talented students, that can also help a lot. Please encourage them to contact me directly. In your workplace or any other organization where you participate, ask your system administrator or developers if they are planning to support SIP, XMPP and WebRTC. Refer them to the RTC Quick Start Guide. If your company web site is built with the Drupal CMS, refer them to the DruCall module, it can be installed by most webmasters without any coding. If you are using Debian or Ubuntu in your personal computer or office and trying to get best results with the RTC and VoIP packages on those platforms, please feel free to join the new debian-rtc mailing list to discuss your experiences and get advice on which packages to use. Everybody is welcome to ask questions and share their experiences on the Free-RTC mailing list. Please also come and talk to us at FOSDEM 2016, where RTC is in the main track again. FOSDEM is on 30-31 January 2016 in Brussels, attendance is free and no registration is necessary. This mission can be achieved with lots of people making small contributions along the way.Real-Time Communication in FOSDEM 2016 main track2015-12-29T20:12:29+01:002015-12-29T20:12:29+01:00https://danielpocock.com/fosdem-2016-rtc-main-track<p><a href="http://fosdem.org">FOSDEM</a> is nearly here and Real-Time Communications is back with a bang. Whether you are keen on finding the <a href="http://danielpocock.com/the-gold-standard-in-free-communications-technology">perfect privacy solution</a>, innovative new features or just improving the efficiency of existing telephony, you will find plenty of opportunities at FOSDEM.</p>
<h3>Main track</h3>
<p><em>Saturday, 30 January, 17:00</em> Dave Neary presents <a href="https://fosdem.org/2016/schedule/event/telco_on_free_software/">How to run a telco on free software</a>. This session is of interest to anybody building or running a telco-like service or any system administrator keen to look at a practical application of cloud computing with OpenStack.</p>
<p><em>Sunday, 31 January, 10:00</em> is my own presentation on <a href="https://fosdem.org/2016/schedule/event/free_communications/">Free Communications with Free Software</a>. This session looks at the state of free communications, especially open standards like SIP, XMPP and <a href="http://danielpocock.com/tags/webrtc">WebRTC</a> and practical solutions like <a href="http://www.drucall.org">DruCall (for Drupal)</a>, <a href="http://lumicall.org">Lumicall (for Android)</a> and much more.</p>
<p><em>Sunday, 31 January, 11:00</em> Guillaume Roguez and Adrien Béraud from Savoir-faire Linux present <a href="https://fosdem.org/2016/schedule/event/universal_network/">Building a peer-to-peer network for Real-Time Communication</a>. They explain how their <a href="https://ring.cx/en/documentation/about-ring">Ring</a> solution, based on <a href="https://blog.savoirfairelinux.com/en/2015/ring-opendht-a-distributed-hash-table/">OpenDHT</a>, can provide a true peer-to-peer solution.</p>
<h3>and much, much more....</h3>
<ul>
<li><a href="http://wiki.xmpp.org/web/Summit_19">XMPP Summit 19</a> is on January 28 and 29, the Thursday and Friday before FOSDEM as part of the <a href="https://fosdem.org/2016/fringe/">FOSDEM Fringe</a>.</li>
<li>The FOSDEM Beer Night on Friday, 29 January provides a unique opportunity for Real-Time Communication without software</li>
<li>The Real-Time Lounge will operate in the K building over both days of FOSDEM, come and meet the developers of your favourite RTC projects</li>
<li>The Real-Time dev-room is the successor of the previous XMPP and Telephony dev-rooms. The Real-Time dev-room is in K.3.401 and the schedule is <a href="http://danielpocock.com/fosdem-2016-rtc-dev-room-schedule">discussed here</a>.</li>
</ul>
<h3>Volunteers and sponsors still needed</h3>
<p>Please come and join the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">FreeRTC</a> mailing list to find out more about ways to participate, the Saturday night dinner and other opportunities.</p>
<p>The FOSDEM team is still fundraising. If your company derives benefit from free software and events like FOSDEM, please <a href="https://fosdem.org/2016/about/sponsors/">see the sponsorship pages.</p>
<a href="http://fosdem.org"><img src="https://fosdem.org/2016/support/promote/wide.png"/></a>FOSDEM is nearly here and Real-Time Communications is back with a bang. Whether you are keen on finding the perfect privacy solution, innovative new features or just improving the efficiency of existing telephony, you will find plenty of opportunities at FOSDEM. Main track Saturday, 30 January, 17:00 Dave Neary presents How to run a telco on free software. This session is of interest to anybody building or running a telco-like service or any system administrator keen to look at a practical application of cloud computing with OpenStack. Sunday, 31 January, 10:00 is my own presentation on Free Communications with Free Software. This session looks at the state of free communications, especially open standards like SIP, XMPP and WebRTC and practical solutions like DruCall (for Drupal), Lumicall (for Android) and much more. Sunday, 31 January, 11:00 Guillaume Roguez and Adrien Béraud from Savoir-faire Linux present Building a peer-to-peer network for Real-Time Communication. They explain how their Ring solution, based on OpenDHT, can provide a true peer-to-peer solution. and much, much more.... XMPP Summit 19 is on January 28 and 29, the Thursday and Friday before FOSDEM as part of the FOSDEM Fringe. The FOSDEM Beer Night on Friday, 29 January provides a unique opportunity for Real-Time Communication without software The Real-Time Lounge will operate in the K building over both days of FOSDEM, come and meet the developers of your favourite RTC projects The Real-Time dev-room is the successor of the previous XMPP and Telephony dev-rooms. The Real-Time dev-room is in K.3.401 and the schedule is discussed here. Volunteers and sponsors still needed Please come and join the FreeRTC mailing list to find out more about ways to participate, the Saturday night dinner and other opportunities. The FOSDEM team is still fundraising. If your company derives benefit from free software and events like FOSDEM, please see the sponsorship pages.TADHack Paris - 12-13 December 20152015-12-12T16:32:55+01:002015-12-12T16:32:55+01:00https://danielpocock.com/tadhack-paris-2015<p>I'm currently in Paris for <a href="http://tadhack.com/2015/tadhack-mini-paris/">TADHack</a>, an opportunity to collaborate on a range of telephony APIs and services. People can also win prizes by doing something innovative with the platforms promoted by the sponsors.</p>
<p><img src="http://danielpocock.com/sites/danielpocock.com/files/TADHack2015-promo-banner-paris-whitebg.png"/></p>
<p>This has been a great opportunity to raise awareness of the <a href="http://rtcquickstart.org">RTC Quick Start Guide</a>, introduce people to <a href="http://drucall.org">DruCall</a> and <a href="http://jscommunicator.org">JSCommunicator</a> and identify other opportunities for business and technical collaboration.</p>
<p>If you are in Paris, it is not too late to register and participate, please <a href="http://tadhack.com/2015/tadhack-mini-paris/">see the TADHack web site</a> for details.</p>
<img src="http://danielpocock.com/sites/danielpocock.com/files/IMG_20151212_182419.jpg"/>I'm currently in Paris for TADHack, an opportunity to collaborate on a range of telephony APIs and services. People can also win prizes by doing something innovative with the platforms promoted by the sponsors. This has been a great opportunity to raise awareness of the RTC Quick Start Guide, introduce people to DruCall and JSCommunicator and identify other opportunities for business and technical collaboration. If you are in Paris, it is not too late to register and participate, please see the TADHack web site for details.Is WebRTC one of your goals for 2016?2015-12-09T23:19:52+01:002015-12-09T23:19:52+01:00https://danielpocock.com/is-webrtc-one-of-your-goals-for-2016<p><a href="http://danielpocock.com/tags/webrtc">WebRTC</a> continues to gather momentum around the world. Over the next week, Paris will host <a href="http://tadhack.com/2015/tadhack-mini-paris/">a TADHack event on WebRTC (12-13 December)</a> followed by Europe's most well known meeting of the WebRTC community, <a href="http://uppersideconferences.com/webrtc/">the annual WebRTC Conference and Expo</a>, 16-18 December.</p>
<p>2015 has been a busy year for WebRTC developers, in the browser, on the server-side and even in documentation, with the online publication of <a href="http://rtcquickstart.org">The RTC Quick Start Guide</a>. These efforts have all come together to create a stable foundation for many implementations in 2016.</p>
<h3>Demo</h3>
<p>The <a href="http://jscommunicator.org">JSCommunicator</a> demo video shows just how convenient WebRTC can be, looking at the first customer-facing WebRTC deployment on Wall Street, a project I put together back in 2014:</p>
<video controls preload="metadata" width="1280" height="720" poster="http://danielpocock.com/sites/danielpocock.com/files/frame3401.png">
<source src="http://video.danielpocock.com/ib-webrtc.webm" type="video/webm"/>(click <a href="http://jscommunicator.org/sites-using-jscommunicator.shtml">here</a> to see it on the JSCommunicator page or <a href="http://video.danielpocock.com/ib-webrtc.webm">here</a> to download it</a>)</video>
<p>This solution was implemented entirely with free, open source software integrated with a traditional corporate PBX. The project involved significant innovation to bring together a new technology like WebRTC with a very established corporate telephony infrastructure. For example, the solution makes use of the <a href="http://www.resiprocate.org/Python">reSIProcate Python scripting</a> to add the <a href="https://tools.ietf.org/html/rfc7433">Avaya UUI headers to the SIP signaling</a>, so it can integrate seamlessly with all existing Avaya customizations and desktop CRM software.</p>
<p>Is this something you can imagine on your organization's web site or as part of your web-based product or service?</p>
<h3>DruCall module for Drupal - WebRTC without coding</h3>
<p>If you run a <a href="http://danielpocock.com/tags/drupal-planet">Drupal</a> CMS or if you would like to, the <a href="http://drucall.org">DruCall</a> module provides a very quick way to get started with WebRTC.</p>
<p>On a Debian or Ubuntu server, you can automatically deploy the entire Drupal stack, Apache, MySQL and all module dependencies with</p>
<code>$ sudo apt-get install -t jessie-backports drupal7-mod-drucall</code>
<h3>JSCommunicator, the generic SIP phone for web pages</h3>
<p>If you don't want to do any JavaScript development, <a href="http://jscommunicator">JSCommunicator</a> may be the way to go.</p>
<p>JSCommunicator is a completely generic solution that can be completely re-branded just by tweaking the HTML and CSS. All phone features can be enabled and disabled using <a href="https://github.com/opentelecoms-org/jscommunicator/blob/master/config-sample.js">the configuration file</a>.</p>
<h3>WebRTC plugins for CRM solutions</h3>
<p>As part of <a href="http://danielpocock.com/tags/gsoc">Google Summer of Code 2014</a>, Juliana Louback created a <a href="http://julianalouback.com/tech/2014/10/30/jscommunicator-at-xtuplecon-2014/">WebRTC plugin for the xTuple enterprise CRM and ERP suite</a>.</p>
<p>The source code of the DruCall and xTuple plugins provide an excellent point of reference for developing similar plugins for other web applications. Both of them are based on JSCommunicator which is designed to embed easily into any existing HTML page or templating system.</p>
<h3>Get involved</h3>
<p>To find out more and discuss RTC using free software and open standards, please join us on the <a href="https://lists.fsfe.org/mailman/listinfo/free-rtc">Free-RTC mailing list</a>.</p>WebRTC continues to gather momentum around the world. Over the next week, Paris will host a TADHack event on WebRTC (12-13 December) followed by Europe's most well known meeting of the WebRTC community, the annual WebRTC Conference and Expo, 16-18 December. 2015 has been a busy year for WebRTC developers, in the browser, on the server-side and even in documentation, with the online publication of The RTC Quick Start Guide. These efforts have all come together to create a stable foundation for many implementations in 2016. Demo The JSCommunicator demo video shows just how convenient WebRTC can be, looking at the first customer-facing WebRTC deployment on Wall Street, a project I put together back in 2014: (click here to see it on the JSCommunicator page or here to download it) This solution was implemented entirely with free, open source software integrated with a traditional corporate PBX. The project involved significant innovation to bring together a new technology like WebRTC with a very established corporate telephony infrastructure. For example, the solution makes use of the reSIProcate Python scripting to add the Avaya UUI headers to the SIP signaling, so it can integrate seamlessly with all existing Avaya customizations and desktop CRM software. Is this something you can imagine on your organization's web site or as part of your web-based product or service? DruCall module for Drupal - WebRTC without coding If you run a Drupal CMS or if you would like to, the DruCall module provides a very quick way to get started with WebRTC. On a Debian or Ubuntu server, you can automatically deploy the entire Drupal stack, Apache, MySQL and all module dependencies with $ sudo apt-get install -t jessie-backports drupal7-mod-drucall JSCommunicator, the generic SIP phone for web pages If you don't want to do any JavaScript development, JSCommunicator may be the way to go. JSCommunicator is a completely generic solution that can be completely re-branded just by tweaking the HTML and CSS. All phone features can be enabled and disabled using the configuration file. WebRTC plugins for CRM solutions As part of Google Summer of Code 2014, Juliana Louback created a WebRTC plugin for the xTuple enterprise CRM and ERP suite. The source code of the DruCall and xTuple plugins provide an excellent point of reference for developing similar plugins for other web applications. Both of them are based on JSCommunicator which is designed to embed easily into any existing HTML page or templating system. Get involved To find out more and discuss RTC using free software and open standards, please join us on the Free-RTC mailing list.