There are always challenges developing an app to scale and these are compounded when set in an African context. African Pastors Fellowship’s eVitabu project, launched in March 2018, provides an Android app pastors can use to access multimedia teaching resources.
Parcel – your next web application bundler? by Janis Koselevs at FrontCon 2019DevClub_lv
When I wanted to compare which bundler to use in my next small project – Webpack or Rollup, I came across a new kid on the block – Parcel.
At first I was like – OMG! Another one! Why?! And then I was like – Interesting… and you wouldn’t believe what happened next!
I talked about how to build products for different geographies like India, USA and South East Asia.
How users change, how product change and how development process change.
Parcel – your next web application bundler? by Janis Koselevs at FrontCon 2019DevClub_lv
When I wanted to compare which bundler to use in my next small project – Webpack or Rollup, I came across a new kid on the block – Parcel.
At first I was like – OMG! Another one! Why?! And then I was like – Interesting… and you wouldn’t believe what happened next!
I talked about how to build products for different geographies like India, USA and South East Asia.
How users change, how product change and how development process change.
Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them.
We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer.
In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape.
Comparing Angular, Ember, Backbone, and React
2
Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.
Nonprofit technology common problems and some possible solutions501 Commons
As a part of the NPower Northwest Tech Assessment Cohort Program, our AmeriCorps VISTA team found 8 common problems present in many small budget nonprofits. At our final meeting we presented some possible low-cost or free solutions.
Expanding Internationally Through Partnerships: Practical Lessons For 21st Ce...Rmasisak
Rebecca Masisak and Marnie Webb, Co-CEOs, TechSoup Global
Your organization is currently doing critical work in the United States, but you recognize the need to grow its reach and impact internationally. What models should be considered? How do key staff and boards step up to support experimentation and adroitly shape and govern the emerging structures and brand?
Important lessons can be learned from pioneering TechSoup Global. As worldwide demand for its programs grew, TechSoup Global's leadership team and board struggled with developing an organizational model that would mobilize partners around a common mission and include contributions from multiple players. Like most organizations, key considerations included expansion without significant additions in headcount and overhead. Now operating in 33 countries with three distinct boards of directors, TechSoup Global has successfully built a growing global network of locally driven programs.
A showcase of applicable insights, this session explores lessons learned, innovative technologies deployed, organizational models piloted and refined, and how boards influence and model the kind of leadership needed as organizations expand internationally.
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...Prasid Pathak
Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them.
We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer.
In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape.
Comparing Angular, Ember, Backbone, and React
2
Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.
Webinar: Measuring Program Outcomes: A Toolkit for Small Libraries-2016-05-04TechSoup
Public libraries offer vital services to the community that provide opportunities for education, lifelong learning, literacy, digital skills, workforce development, and youth development. In order to gain and retain funding, libraries should have data to support their stories of success and positive impact on the lives of community members. Outcome measurement is a process which provides libraries with data that can be used for advocacy, programming decisions, and planning, so the library can communicate clearly and make improvements to programs and services. Outcome measurement can be a big undertaking, but a new toolkit has been developed to help libraries easily and effectively survey patrons to learn the true impact of their programs.
This free webinar provides an overview of outcome measurement from Project Outcome, a new program from the Public Library Association, that provides simple tools so libraries can measure programs across seven common service areas.
Presenters: Angela Stanley, Mary Willoughby.
Pre-conferences presented at the Georgia Libraries Conference in Macon, GA on 10/09/2019.
Beginning a digitization project can feel intimidating - particularly if you represent a small institution--but it doesn't have to be. There are guidelines, tools, and suggested best practices readily available online, plus real live people around the state available to help answer your most perplexing questions!
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...Alex Cachia
Vertical Slice Architecture helps us build maintainable applications by separating concerns around features rather than technical responsibilities allowing us to add features without modifying existing code.
Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them.
We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer.
In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape.
Comparing Angular, Ember, Backbone, and React
2
Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.
Nonprofit technology common problems and some possible solutions501 Commons
As a part of the NPower Northwest Tech Assessment Cohort Program, our AmeriCorps VISTA team found 8 common problems present in many small budget nonprofits. At our final meeting we presented some possible low-cost or free solutions.
Expanding Internationally Through Partnerships: Practical Lessons For 21st Ce...Rmasisak
Rebecca Masisak and Marnie Webb, Co-CEOs, TechSoup Global
Your organization is currently doing critical work in the United States, but you recognize the need to grow its reach and impact internationally. What models should be considered? How do key staff and boards step up to support experimentation and adroitly shape and govern the emerging structures and brand?
Important lessons can be learned from pioneering TechSoup Global. As worldwide demand for its programs grew, TechSoup Global's leadership team and board struggled with developing an organizational model that would mobilize partners around a common mission and include contributions from multiple players. Like most organizations, key considerations included expansion without significant additions in headcount and overhead. Now operating in 33 countries with three distinct boards of directors, TechSoup Global has successfully built a growing global network of locally driven programs.
A showcase of applicable insights, this session explores lessons learned, innovative technologies deployed, organizational models piloted and refined, and how boards influence and model the kind of leadership needed as organizations expand internationally.
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...Prasid Pathak
Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them.
We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer.
In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape.
Comparing Angular, Ember, Backbone, and React
2
Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.
Webinar: Measuring Program Outcomes: A Toolkit for Small Libraries-2016-05-04TechSoup
Public libraries offer vital services to the community that provide opportunities for education, lifelong learning, literacy, digital skills, workforce development, and youth development. In order to gain and retain funding, libraries should have data to support their stories of success and positive impact on the lives of community members. Outcome measurement is a process which provides libraries with data that can be used for advocacy, programming decisions, and planning, so the library can communicate clearly and make improvements to programs and services. Outcome measurement can be a big undertaking, but a new toolkit has been developed to help libraries easily and effectively survey patrons to learn the true impact of their programs.
This free webinar provides an overview of outcome measurement from Project Outcome, a new program from the Public Library Association, that provides simple tools so libraries can measure programs across seven common service areas.
Presenters: Angela Stanley, Mary Willoughby.
Pre-conferences presented at the Georgia Libraries Conference in Macon, GA on 10/09/2019.
Beginning a digitization project can feel intimidating - particularly if you represent a small institution--but it doesn't have to be. There are guidelines, tools, and suggested best practices readily available online, plus real live people around the state available to help answer your most perplexing questions!
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...Alex Cachia
Vertical Slice Architecture helps us build maintainable applications by separating concerns around features rather than technical responsibilities allowing us to add features without modifying existing code.
OWASP Top 10 2021 - let's take a closer look by Glenn WilsonAlex Cachia
In this talk Glenn will walk you through the OWASP top 10 published towards the end of 2021 to explain what's hot and what's hotter. He will give a brief description of each weakness and explain how these they are exploited and, more importantly, what you can do to mitigate against attackers exploiting them in your code
If you think open source is not for you, think again by Jane ChakravortyAlex Cachia
Years ago open source was considered unsuitable for the mainstream. We had Windows, didn’t we? Times have changed, we all use open source these days, but often don’t know it. So, let’s take a closer look at open source.
Chaos Engineering – why we should all practice breaking things on purpose by ...Alex Cachia
What can we learn from fire fighters to make the systems we come to depend upon become more robust and resilient? In this talk, I will introduce what Chaos Engineering is and why it is important and share some real case studies of how people like Netflix and Amazon are applying these techniques to create more resilient systems for the benefit of their customers.
Treating your career path and training like leveling up in games by Raymond C...Alex Cachia
Treating your career path and training like leveling up in games
We will take a look at how you can actively plan your career through learning specific skills. Picking a moon-shot job and working out the path to get there. Then how to start taking practical steps to get started
Digital forensics and giving evidence by Jonathan Haddock Alex Cachia
Digital forensics is being used more and more as computers become increasingly prevalent in our lives. In this talk, Jonathan will walk us through a basic forensic process and discuss some of the complications. Jonathan will highlight some key forensics principles that you can follow without specialist software, allowing you to implement them as part of your own incident response process.
There are many ways to secure software. In this talk, I will explain some of the different techniques used to prevent introducing security vulnerabilities into your software, using threat modelling, automated testing and dependency validation.
Data Preparation and the Importance of How Machines Learn by Rebecca VickeryAlex Cachia
Machine learning is the ability of a machine to perform a task without being explicitly programmed. In this talk, I will cover how to manipulate data into a state that a machine can understand and make accurate predictions, and introduce a Python library that makes this easier.
Why Rust? by Edd Barrett (codeHarbour December 2019)Alex Cachia
For longer than I have existed, memory errors have plagued systems programming. Although many such errors are benign, sadly many end up being security vulnerabilities, or worse, exploits. In this talk, I will discuss how a security exploit is born, and how the Rust
programming language tries to prevent them.
Issue with tracking? Fail that build! by Steve Coppin-Smith (codeHarbour Nove...Alex Cachia
The analytics strategy must be a primary citizen of the software delivery process in a data driven business! This talk will include a live demo of extending the Nightwatch automated testing framework to uncover and resolve issues in tracking code that would have otherwise hit production.
Hack your voicemail with Javascript by Chris Willmott (codeHarbour October 2019)Alex Cachia
You're a developer, so you probably have working knowledge of Javascript. Its 2019, but people still leave you voicemails, pff. In this short practical talk, I'll show you how to hack and upgrade ANY mobile voicemail to do almost anything you want with the Twilio platform.
Revving up with Reinforcement Learning by Ricardo SueirasAlex Cachia
In this session I will share my journey that started with me taking my children discarded toys and trying to get them to drive themselves, to a fully autonomous driving model car.
Blockchain For Your Business by Kenneth Cox (codeHarbour July 2019)Alex Cachia
Blockchain is an emerging technology that has captured the attention of the financial experts, the media and the technical enthusiasts. In this talk we take a look at the technology; how it works, why you should consider it for your business and how it's given life to cryptocurrencies.
Seeking Simplicity by Phil Nash (codeHarbour June 2019)Alex Cachia
What is simplicity and why do we value it so much? How does it relate to complexity? When is complexity good and when is it bad? How does simplicity differ from ease? As we examine these questions we'll find that the situation is not quite as simple (!) as it might first appear. In the course of the discussion we'll come up with a mental model for framing problems that we can apply to many things - but we'll particularly look at how we can apply it to our designs and code. We'll also look at how some programming languages help us more than others in our drive towards simplicity.
Sharing Data is Caring Data by Mark Terry (codeHarbour June 2019)Alex Cachia
Considerations for creating, storing and trusting a unified business approach to data in a distributed environment. In order to prevent disjointed and competing views of business facts.
Managing technical debt by Chris Willmott (codeHarbour April 2019)Alex Cachia
Managing technical debt by Chris Willmott
With the talk primarily aimed at those in technical roles, I'll be providing a number of practical methods to use when managing technical debt. About half the talk will be things we can do as developers to quickly identify then reduce the impact of technical debt, and half will be around how to explain technical debt to non-technical stakeholders.
Hosted by Alex Cachia, codeHarbour provides an opportunity for discussion and a platform for digital presenters to get their technological ideas out there to the people who need to hear it.
Telephone Systems and Voice over IP by Bob Eager (codeHarbour April 2019)Alex Cachia
Telephone Systems and Voice over IP by Bob Eager
The speaker will talk about his experiences with a gradually evolving SOHO telephone system, starting with a single POTS (landline), through ISDN, to the current VoIP solution, and the eventual removal of the original telephones. The majority of the talk will concern the use of the open source Asterisk platform to provide numerous facilities (including one or two quite unusual ones) in a large, rambling house used also as an office for part of the time. This will include an introduction to VoIP for beginners. Costs and savings will also be considered. There will be time for questions and discussion.
Hosted by Alex Cachia, codeHarbour provides an opportunity for discussion and a platform for digital presenters to get their technological ideas out there to the people who need to hear it.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
2. Developing for Africa - the
challenges of building apps
for the African environment
Jonathan Haddock
Code Harbour - 2nd October 2019
https://blog.jonsdocs.org.uk
@joncojonathan
3. The problem
● APF is a Christian charity focussed on transforming
lives in Africa
● Training material was circulated on paper
○ Farming
○ Health
○ Christian studies
○ Financial suggestions
4. The problem
● Paper is expensive to print and ship
● Updates don’t happen - once printed there’s no
change
● Economies of scale meant many copies of documents
○ Sometimes in very obscure languages
● Intra-Africa distribution difficult
5. eVitabu - the solution
● An Android app
○ Android v5+, with v4 possible
● Easy to use interface
● Searchable
○ Lead to scale challenges
● Resources available offline
● Requires registration &
vetting
7. Hurdles - connectivity: speed, cost & reliability
● Transfer rates can be sloooow
● Data is paid for by the MB
○ Same over here, but we have more disposable funds
● Connections may not be stable, leads to repeated
download attempts and increased costs
● Necessary to make downloaded data as small as
possible
○ A valid goal in any application, but more prominent here
8. Hurdles - allowing for scale
● Early versions of the app sent lots of requests
● Initially no caching
● Learning point: load test systems with realistic data
sets
○ Test systems of only 20 records aren’t the same!
● Initially no compression
○ We’re used to browsers automatically enabling Gzip
compression - your own app doesn’t
● Searching process was inefficient
9. Hurdles - contextualisation
● I and my co-developers are mzungu - white people
● Developing from a Western context
○ Exposure to other apps and GUIs
● Difference in language
○ English is the common language, but simplified
● Icons & symbols may have different meanings
10. Hurdles - supporting users
● It’s a long distance relationship!
● Email and WhatsApp used a lot
● Local partners assist at set up conferences
○ Sometimes they take short cuts
● Changes to the back end (e.g. the XML schema) must
be considered
○ Older versions of the app could be used for many years
○ Backward compatibility
12. Links and acknowledgements
● African Pastors Fellowship
https://africanpastors.org
● My blog
https://blog.jonsdocs.org.uk
I’d like to thank Mike, my original co-developer on this project.
Adam, my long time coding partner, has also contributed hours to
the project.
I’d also like to thank APF’s trustees for backing eVitabu, along with
our users for helping it grow.
I’ve been developing applications since I was about 16, generally focussed on web applications. I tend to develop in PHP but used to dabble in Microsoft Quick BASIC (years ago) and wrote a proof of concept Android app for my MSc some years ago.
Since working on the eVitabu project with a local charity I’ve increased the amount of Android / Java development I do. eVitabu is the first tool I’ve written that has more than 10 users.
While the charity has a strong Christian background and ethos, it doesn’t only circulate Christian or Biblical teaching materials although Christianity may run through the materials as a theme.
You can read more about African Pastors Fellowship at https://www.africanpastors.org/ .
There are still many printed documents in storage in Africa. Some are likely no longer relevant or would benefit from being updated.
Distribution networks inside Africa can be expensive, with smaller work being done by bike or by hiring motorbike based couriers. Having to deliver paper documents to individual partners is costly and time inefficient given the distances involved. The other option is that partners travel to a centralised depot to collect resources - even more time inefficient and many do not have transport or the funds to procure it.
APF’s partners are based all over sub-Saharan Africa, with contacts in Uganda, Kenya, Malawi, Rwanda and elsewhere. Getting everyone together does not happen often, and it was a real privilege to be at the launch conference with so many partners, from so many places, in March 2018.
Android version distribution is a challenge. At the launch conference we were providing the hardware, so could concentrate on Android 7 only. Since then we’ve had prospective users contact us about using older devices, so we now support Android 5. The app will run on Android 4 but that would require the security of the central server to be reduced by enabling TLSv1.0 support. We’re looking at Android usage statistics for Africa to determine the best course of action - devices aren’t changed out every couple of years like they are in the West.
Users register for access to materials and get vetted by APF staff to ensure they’re from known partners. A lot of the contributors are providing materials at discounted rates (or free) on the agreement resources are only accessed by approved individuals.
A lot of time will be spent away from an Internet connection so resources get downloaded to the tablet or phone. During the launch conference (where we provided a free Internet connection) some partners downloaded so many resources they didn’t reconnect to our server for over 3 months.
More details about eVitabu are here: https://www.africanpastors.org/evitabu/ .
The first version of the app’s APK was around 3MB but that later grew to 19MB for reasons that I couldn’t determine. This increase was a significant problem, particularly on a slow connection (I simulated this at home on a connection limited to less than 10Mbps - it was painful watching the Play store upgrade the app). Fortunately that’s now solved by use of Android App Bundles ( https://developer.android.com/platform/technology/app-bundle ).
Connection reliability can lead to downloads corrupting or not completing at all. One kick off meeting was plagued with this problem, with a number of reports of missing resources - they all existed in the back end.
Originally, each time the user changed activity in the app there was a new connection to the server and a new download of XML. This was fine in early testing, with only a handful of resources, but a real pain after we’d imported over two thousand. Add to that the fact the XML being downloaded was not compressed and we had a runaway problem that would be very costly for partners.
Changes were made to cache the XML response on the device for 5 minutes. This is long enough to browse and select resources for download and the list of available resources doesn’t change that regularly - this cache time could be increased. XML data transfers were also compressed with Gzip, massively reducing download times and sizes for the library’s metadata.
Searching originally downloaded a new copy of the XML every time a letter was entered into the text box. That was a bad decision and hugely inefficient, something we only noticed after bulk-loading a set of resources. The search now uses the cached data and only begins searching after the third character has been entered.
I wrote a blog post, Allowing for scale, which goes into this in greater depth: https://blog.jonsdocs.org.uk/2018/09/12/allowing-for-scale/ .
Wherever possible we’re looking to contextualise the interface so it makes more sense in Africa. Feedback from our users is always valued and we know there’s some areas that need to be adjusted to make the whole experience smoother.
English is used in a simplified form: no contractions (“cannot” rather than “can’t”) and sentences are kept short.
If an icon isn’t immediately understood it’s important that it doesn’t cause offence.
Support was reasonably easy during the launch conference - I was physically with the users along with a team of others that knew how to use eVitabu. Since that first conference there’s been at least two more lead by the CEO - when I’ve not been there. This brings challenges in supporting both the CEO and the end users at the conference, not always achievable during the working day.
Shortcuts sometimes taken by local partners can lead to problems. For example, one group decided they’d share the app via Bluetooth to save having to download the app from the Play store. This caused issues as they were using an old version of the APK, lacking performance and stability enhancements.
We planned the XML schema carefully to make sure it contained all the elements we thought eVitabu would need for some time. The concern is that a partner could be using a very old version of the app to connect to our back end infrastructure. While we’d love them to upgrade, and we encourage them to update, the important thing is that partners can download resources. Additionally, we’ve built the app to be tolerant to schema changes - additional fields should be ignored if the app doesn’t know about them.