Fetching the latest programs, projects, and workspace data.
Find open source projects actively accepting contributors. Search repositories, filter by program milestones, difficulty tags, or tech stack.
Use our Orbit AI Matcher to find out! Get instant matching scores based on your developer skills, preferred frameworks, and contribution experience.
Convert your selected open-source project into a winning GSoC, LFX, or Outreachy application using Proposal Studio.
<p>Polynomial factorization is one of the fundamental tools of the computer algebra systems. And in symbolic mathematics, it is one of the basic requirement over which other algorithms can be implemented. Currently, SymEngine has the implementation of Univariate Polynomial class, which provides us the basic functionality to add, multiply and subtract two polynomials.</p> <p>Now, comes the problem of factoring the polynomials and then other modular arithmetics and, <code>gcd</code> and <code>lcm</code>.</p> <p>Therefore, we need to have a module, which can convert the polynomial into a finite field (or <a href="https://en.wikipedia.org/wiki/Galois_field" target="_blank">Galois Field</a>), do basic operations of <code>add</code>, <code>mul</code>, <code>div</code> etc. on them and then the algorithms for factorization like:</p> <ul> <li><a href="https://en.wikipedia.org/wiki/Cantor%E2%80%93Zassenhaus_algorithm" target="_blank">Cantor–Zassenhaus algorithm</a></li> <li><a href="https://en.wikipedia.org/wiki/Berlekamp's_algorithm" target="_blank">Berlekamp's algorithm</a></li> </ul> <p>After doing factorization, we will be able to find roots, which in turn will help us to solve univariate polynomial equations. Then for returning solution, <code>Set</code> are the simplest and most intuitive way. Like in real pen-paper exam, we are supposed to return solutions in form of sets. So, here also, following the way sympy has been adapting to <code>solveset</code>, we should develop a basic infrastructure, over which <code>solveset</code> can be developed.</p>
Print Dialogs are one of the most used features for many people, and it is important that they stay up to date with the current print technologies (like CUPS) and be able to quickly adopt any new such upcoming technology (XYZ Cloud Printing Service). The print technology developers should also be able to fix any bugs as soon as they are found. However, since most Print Dialogs are provided natively by the GUI toolkits (and in some cases applications like LibreOffice and Chrome), this is often not the case. This is because the GUI toolkits themselves are large projects with long release cycles, and they have a lot of other similarly important things to work on. As of current, most GUI toolkits like GTK and QT connect their Print Dialogs directly with the print technologies like CUPS which creates problems for both. Any changes made by the print technologies, be it a bug fix or a new feature release often takes a long time to show up in the print dialogs upstream due to the reason mentioned before. Similarly, the print technologies need to constantly maintain backwards compatibility since they can’t release breaking changes if the Print Dialogs have not yet implemented them. Besides this, there is also a disconnect between the two sides due to the slow-release cycles. The Common Print Dialog Backends (CPDB) introduced in 2017 by Till Kamppeter aims to de-couple the GUI from the print technologies. Instead of directly connecting to each print technologies separately, the GUI projects only must adopt CPDB support once, and then OpenPrinting (or any upcoming cloud printing projects) takes care of the CPD Backend for the print technologies to be up to date with any changes. This way print technologies can react quickly and not be bound by the big GUI toolkits’ inertia. This project will attempt to get CPDB into print dialogs upstream for GTK, Qt and Chrome.
<p>The current PDF renderer in cups-filters, namely Ghostsscript and Poppler, are much heavy weight to mobile devices as compared to MuPDF which is significantly lightweight. Implementation of MuPDF is required in the cups-filters as it will save lots of memory, storage and CPU resources in mobile devices for printing job. Filters like pdftops, pdftoopvp, pdftoraster, pdftoijs and pdftopdf have to be modified in order to add support for MuPDF without dropping existing support for Ghostscript and Poppler.</p>
<p>Currently nodewatcher has very limited overview of used IP space without more precise division of existing and used subnets. This could be improved using compact and colorful matrix with IP ranges and links to nodes. I would display data about used ips similar to the <a href="http://census2012.sourceforge.net/images/hilbert_icmp_map_lowquality.jpg" target="_blank">IP Census 2014</a>, better tables and other data representation that would help explain the network structure, it would help in explaining the network and its statistics even to an uninformed observer. I would also update the look and functionality of other graphs and tables representing statistical data from nodewatcher</p>
<p>In modern urban areas it is very common to experience a lot of Wi-Fi spectrum congestion in the 2.4GHz and 5GHz bands. High density of omnidirectional antennae per unit area directly translates to low SNR and thus bad wireless performance of our nodes. In the case where we only control one wireless node, not much can be done. We can scan the surroundings and choose the channel with a maximal SNR. But with a node database system, we can simultaneously optimize the spectrum allocation (both in terms of bandwidth as well as the center frequency, i.e. channel) across different nodes. SWOON is an algorithm that would maximize channel capacities over multiple nodes in close proximity.</p>
I will be working on converting the app source codes from java to kotlin, I’ll remove the extra features that the mentor suggests to be removed and also have constant discussions about what else can be improved/added in the core functionality of the app. I will work on redesigning the UI of the app to make it easier to use. I will update the webRTC library, investigate the connection bug, do consistent testing to find out if we are missing out on any bugs and at the end make a new release for the app.
This project aims to enhance Wi-Fi rate adaptation by integrating Deep Q-Networks (DQN) with the ORCA and RateMan frameworks. Traditional rate adaptation algorithms like Minstrel-HT struggle in dynamic wireless environments, especially in fast-changing conditions. By using machine learning, specifically DQN, the project will dynamically optimize Wi-Fi transmission rates based on real-time metrics such as SNR, RSSI, retry counts, and throughput. The system will be tested and compared against existing algorithms to assess improvements in throughput, latency, and packet loss. Deliverables include a fully integrated DQN-based rate adaptation model, detailed simulation results, and code contributions to the open-source community.
<h4>Decentralized WiFi controller</h4> <p>DAWN is a decentralized WiFi controller. So far the daemon concentrates on load balancing to distribute the network traffic among different Access Points to maximize the network performance. I want to improve the daemon by simplifying the configuration, extending the functionally and improving the usability.</p> <h5>Milestones</h5> <ul> <li>Implement Bootstrapping</li> <li>Implement Graphical User Interface</li> <li>Extend Controller Functionality</li> <li>Improve Load Balancing</li> </ul>
<p>Retroshare has an existing WebUI interface which covers the basic functionality of the client. However it has limited functionality and does not make full use of the web platform.</p> <p>The project aims to replace the old WebUI for a new and modern web interface which works by leveraging Retroshare's Json API which is already part of Retroshare internals. It will be made entirely usable on a web browser, and will make use of modern web functionalities, flexibility, and approachability.</p> <p>Projects page link: <a href="https://projects.freifunk.net/#/projects?project=retroshare_port_web_interface_to_json_api&lang=en" target="_blank">https://projects.freifunk.net/#/projects?project=retroshare_port_web_interface_to_json_api&lang=en</a></p>
<p>OONF (OLSRv2) is a link state routing protocol. It works sending periodical messages to his neighbors with the aim of transmitting information about topology changes. With these information each node of the network is able calculate the paths to reach any other destination. These messages are periodically generated, based on the configuration parameter that regulates the sending interval. A short period will make the network react rapidly but it will also cause a large overhead due to control messages. Pop Routing is a recent technique that takes advantage of the knowledge of the network topology to find the optimal value for the OONF’s timers. Using Pop Routing every node computes its own “betweenness centrality” and uses it to calculate the optimal trade-off between convergence and overhead. The algorithm has been developed at the UniTN and the needed libraries to compute the BC are available as free software. My goal is to build a daemon that can calculate autonomously the BC of the network, together with a plugin for OONF that will use this value to tune its timers.</p>
<p>I would to create a reference library capable to interact bidirectionally with RS and outside it, engaging people to create apps, bots, and other stuff on the RS network. Making easy way to import/export data from Retroshare network.</p>
<p>BMX7 offers plugins which are used for the distribution of small files, settings up tunnels or offer stats of the network structure. Currently the connection between a client node and the gateway are established via IPIP (IPv4/6 over IPv6), which is unencrypted and therefore possibly readable by attackers. As mesh networks usually operate on unencrypted wireless connections, the attack vector is considerably big.</p> <p>Our solution is to combine the current cryptographic stack of BMX7 with the one used by WireGuard. The process via which this will be achieved will be iterative; meaning that first binary calls from bmx7 to userland WG will be introduced, afterwards the efforts will be centered in the creation of a new plugin implementing WireGuard routing by using part of the existing cryptographic primitives and at last the effort to combine the tunnel plugin with the wg one.</p> <p>The detail that distinguishes our approach’s difficulty from hard to medium is cryptographic keys. It’s simpler to announce new public keys for WireGuard and have a separate plugin than replacing the existing BMX7 keys to allow signing of descriptive updates and encryption of traffic.</p>
<p>The Project has 3 sub-parts which are described as:</p> <ol> <li><strong>Initial Firmware Retrieval: </strong> People who want to update their device, often do not know what firmware file to download. So far the best option is the Wiki, but it is often loaded with too much information. The file download organizes all images files by architecture, but that is what most user usually do not know beforehand. </li> <li><strong>Firmware Upgrades: </strong> Create a router web interface package for LuCI to check and apply new images.</li> <li><strong>Creating meta-data for each target: </strong> To get the data for both projects, the OpenWrt build system needs to modified to create json files with the necessary metadata.</li> </ol>
<p>While analyzing already available Open Source Wireless Intrusion Detection Systems (WIDS), we realized that there is no full-featured solution yet. We expect a WIDS to fulfill the following needs</p> <ul> <li>detect most of the known Wi-Fi attacks,</li> <li>scale easily and thus be able to work within big organizations and</li> <li>be easily expandable.</li> </ul> <p>It is the objective of the 'Easily Expandable Wireless Intrusion Detection System' (Eewids) to provide an environment which ensures the scalability and the expandability. The actual detection methods shall get added one after another later on. To achieve this a microservice approach is used. Different tasks at stake are done by different services instead of creating a monolithic software. Adding a new detection method, does not involve thinking about the actual capturing of data or storing and parsing the data. Even the presentation of the detection results is already provided by Eewids. This shall make the creation of a full-featured solution much more easier in future.</p>
After the publication of the New Pirania API, a lot has been gained with Pirania in Libremesh. Many communities could be used and even today they use it as a very important tool for the collection of funds, for the payment of the provider and sometimes even for people who work. Everybody can manage the system with Pirania UI. each router has access to the Captive Portal system and this makes it be distributed and extremely used in a community and of different types of governance. Pirania has different options of governance, this means that each community can understand the best use that it can make with the system and different cases of use. but for it to be more complete it is important to raise the different ideas that have already been raised by the community. And after the latest versions of lime-packages, pirania is not included, mainly because the basis of pirania’s operation is the iptables rules contained in ./usr/bin/captive-portal. As iptables ends up creating a very large file, the new version of libremesh decided to migrate from iptables to nftables. This and other changes need to be made to fit pirania into a new release.
<p>Turnantenna is now a prototype, and the code was written for a specific driver and for a specific motor. My project includes:<br> • 1 more motor, in order to allow the Turnantenna to change the pitch angle too;<br> • write new code compatible with different motors and drivers, and not only a single type;<br> • configure an API interface compatible with JSON format;<br> • a dedicated website where full documentation, how-tos, and test's results can be found.</p>
<p>Performing updates on routers is quite different from full Linux distribution. It's not sustainable to do release upgrade via a packet manager. Instead it's usually required to re-flash the system image. Depending on the installed packages an image rebuild may be to complex for regular users. A more convenient way is needed.</p> <p>This project will implement an "image as a service" server side which provides custom build images depending on installed packages. A notification in the web interface will notify about the new release. After image creation a one-click installation is offered within the web interface.</p> <p>The server side implementation will use established tools like LEDE's ImageBuilder to provide an generic approach for image creating. In this way the entire OpenWrt/LEDE community including several community-mesh firmware projects will benefit from that new update routine.</p>
This proposal seeks to develop the Web Interface of Retroshare application. The primary goal is to develop as many features as in the RetroShare Qt interface and provide a user-friendly web interface using MitrhilJS framework and Retroshare JSON API.
When a community network router ethernet port is acting as a gateway to the Internet or as a border to neighboring networks, the network configuration usually needs to be changed from the default settings to accommodate for the specific role. A router ethernet port can be connected to the Internet, or connected to a dummy wifi device for a point to point link, or connected to another router of the same mesh network to expand mesh coverage. All these cases would benefit of specific configuration. As of today handling those configuration manually represents a barrier for communities without technical experts who could understand and optimize the devices ethernet ports configuration appropriately. Most of the described situation could be detected at runtime through automatic tests and the required configuration applied automatically, the goal of this project is to develop the software needed to accomplish automatically to the described needs.
<p>Make an inventory of all LuCI components that LibreMesh uses and that will not be compatible with LuCI2. Analyze which dependencies must be replaced or rewritten and generate the views according to the new framework selected.</p>
1. Analysis of different approaches to run XDP and eBPF on openWrt devices 2. Integration of the tools and drivers into OpenWrt 3. Description of different use cases that leverage the capabilities of XDP/eBPF on OpenWrt devices 4. Implementation of a dedicated use case that demonstrates the benefits of the XDP/eBPF
<p>The goal of this project is to develop a new OpenWLANMap wardriver app to replace the old one, which is not working anymore in order to save and expand the OpenWifi.su community</p>
<p>My goal is to design a new protocol for qaul.net. The current protocol is very heavily coupled to olsr which is used for all networking tasks. To move away from olsr for compatibility reasons on Android means to create a protocol which qaul.net can then use to find networks, manage client discovery as well as all payload communication and user negotiation.</p>