diff --git a/content/academia/alive2-maintainer-spotlight.md b/content/academia/alive2-maintainer-spotlight.md index 317c6029d..86803d1cf 100644 --- a/content/academia/alive2-maintainer-spotlight.md +++ b/content/academia/alive2-maintainer-spotlight.md @@ -11,6 +11,9 @@ badges: ["Academic Maintainer", "Associate Professor"] description: "A tool to automatically verify the correctness of LLVM optimizations, used by several companies and instrumental in finding hundreds of bugs in LLVM." --- +alive2 + + ## What is Alive2, and what does it help people do? Alive2 is a tool to automatically verify the correctness of LLVM optimizations. diff --git a/content/academia/jenkins-warnings-ng-maintainer-spotlight.md b/content/academia/jenkins-warnings-ng-maintainer-spotlight.md new file mode 100644 index 000000000..2011aefda --- /dev/null +++ b/content/academia/jenkins-warnings-ng-maintainer-spotlight.md @@ -0,0 +1,113 @@ +--- +name: Ullrich Hafner +institution: Hochschule München University of Applied Sciences +department: Computer Science and Mathematics +projectName: Jenkins Warnings Plugin +projectRepo: https://github.com/jenkinsci/warnings-ng-plugin +projectWebsite: https://plugins.jenkins.io/warnings-ng/ +maintainerProfiles: + - github: https://github.com/uhafner + - orcid: https://orcid.org/0009-0008-0627-3444 +badges: ["Academic Maintainer", "Professor"] +description: "A Jenkins plugin that automatically collects and visualizes warnings and errors from compilers and static analysis tools, supporting over 150 formats such as CheckStyle, SpotBugs, and StyleCop, with quality gates, trend charts, and Git forensic statistics." +--- + +## What is the Jenkins Warnings plugin, and what does it help people do? + +The Jenkins Warnings Plugin is a Jenkins plugin that automatically collects and visualizes warnings and errors from compilers and static analysis tools — supporting over 150 formats such as CheckStyle, SpotBugs, and StyleCop. After each build, teams get a detailed report showing new, fixed, and outstanding issues, filterable by severity, category, package, or module, with annotated source code views and trend charts over time. Quality gates can be defined to fail a build automatically when issue thresholds are exceeded, keeping code quality under continuous control. + +For Git-based projects, the plugin additionally provides forensic file statistics — including commit history, author counts, and code churn — helping teams understand not just what problems exist, but where they accumulate and who has been working in those areas. + +The plugin's functionality is also available as standalone actions for GitHub and GitLab, making it accessible without a Jenkins installation. This includes dedicated autograding actions that automatically score student software projects based on configurable quality metrics, providing direct feedback on pull or merge requests — making it a practical tool for teaching students to write better code through continuous, automated feedback. + +## What inspired you to start this project? + +The project was initially created to visualise code quality within an industry team. It later expanded through community contributions and was adapted for teaching and grading purposes. + +## How does this project connect to your academic work? + +It is used for grading student projects and teaching software engineering practices. + +## Who contributes to the project? + +Besides me as the maintainer, students, members of the Jenkins community, and other contributors that use the plugin in their projects. + +## How are students involved in the project? + +Students contribute tests and features as part of their thesis work. Since they use this tool in their classes, they are also actively involved in the project when proposing new features or fixing bugs. + +## How is the project used in teaching or coursework? + +It is used in software engineering and testing courses. Students use the plugin to grade their projects and provide feedback on their code. + +## What impact has this project had on your students? + +Student engagement increases, as their contributions become part of a real-world project. + +## What impact has the project had beyond the classroom or research? + +The plugin is used on approximately 10% of Jenkins instances worldwide. The GitHub companion is also used by many projects to monitor code quality and provide feedback on pull requests. + +## What does it take to maintain the project? + +Issues are opened by users. I prioritise the issues that I am going to implement based on severity, content and importance. + +## What have been the biggest challenges in maintaining the project? + +Managing an open source project takes a lot of spare time. Ensuring that the quality of student contributions is also good enough for an industry-grade project is very time-consuming. Sometimes it is difficult to balance this with teaching responsibilities. + +## How do you ensure the project remains sustainable over time? + +I haven't tried to apply for research grants, as I assume that this paperwork would reduce my hands-on coding time even more ;-) + +## How do you engage with your community? + +I was a Jenkins governance board member over the past two years. I participate in Jenkins chats and community forums, and I help newcomers take their first steps in our open source project. + +## Have you taken part in any open source programs or events? + +The project has participated in Hacktoberfest and Google Summer of Code. + +## What would you love to achieve by showcasing your project? + +To highlight the connection between industry and education. + +## Do you use AI tools in your day to day work on this project? If so, how? + +I am using GitHub Copilot to review pull requests and to help shape new features or bug fixes. In the last couple of months, I have also been using agentic workflows to get the first sketch of new features. Additionally, I use AI to get fast and concise answers to general programming questions. + +## Do you implement AI into your classroom or coursework (if applicable)? If so, what does that look like in practice? + +Students have the choice to use AI in the coursework, but I don't define which tools they use. Typically, they use GitHub Copilot in IntelliJ IDEA to improve their code. + +## Has AI changed how you maintain or manage your project? + +Not much yet, but I notice that I can develop features faster and have a better understanding of the code. + +## Have you experimented with AI driven or automated workflows in your project? What has that looked like? + +Not myself, but several Google Summer of Code applications have used AI to automate their pull requests in my project. + +This also has some downsides, as the quality of the generated code is not always good, and sometimes the changes are not really necessary at all. + +## How do you see your contributors using AI when working on your project? + +I think that AI can be a great tool for contributors, as it can help them understand the code better and provide better feedback. The code base is large, and it is hard to understand it all or to find the right place to add a new feature. + +## What concerns or challenges, if any, do you have about the use of AI in your project or field? + +I think that AI will produce a lot of code faster, but this code also needs to be reviewed, tested, and maintained. This will shift the burden of maintaining the code to the contributors. + +## How has your approach to maintaining this project evolved over time? + +In the beginning, I was the only contributor, and I did everything myself. Now, I have a team of contributors who help me maintain the project, and I can focus more on the overall direction and strategy. + +For example, out of the 150 parsers that are currently in the project, I have written only 10. All other parsers are contributed by the community. + +## How do you see AI shaping the future of your project or field? + +For me, it is a new powerful tool that can help us improve our work and make it more efficient. It also has a lot of potential to help us understand the code better and provide better feedback. + +## Is there anything else you'd like to share? + +Thanks to you for providing all those resources for open source teams in the world! Without GitHub this open source world would not be so successful. diff --git a/content/academia/jplag-maintainer-spotlight.md b/content/academia/jplag-maintainer-spotlight.md new file mode 100644 index 000000000..06d34c9e5 --- /dev/null +++ b/content/academia/jplag-maintainer-spotlight.md @@ -0,0 +1,75 @@ +--- +name: Timur Sağlam, Robin Maisch +institution: Karlsruhe Institute of Technology (KIT) +department: KASTEL – Institute of Information Security and Dependability +projectName: JPlag +projectRepo: https://github.com/jplag/JPlag +projectWebsite: https://helmholtz.software/software/jplag +maintainerProfiles: + - github: https://github.com/tsaglam + - orcid: https://orcid.org/0000-0001-5983-4032 +badges: ["Academic Maintainer", "Doctoral Researcher"] +description: "A powerful, open-source plagiarism detection tool for source code that detects structural similarities among programs and presents results in an interactive report for educators." +--- + +## What is JPlag, and what does it help people do? + +JPlag is a powerful, open-source plagiarism detection tool for source code, designed for educational institutions. It detects structural similarities among sets of programs and can identify plagiarism even when the program code has been obfuscated. It presents the results in an interactive report which allows educators to detect and inspect suspiciously similar programs. However, the final decision of identifying plagiarism is left to instructors, given the ethical considerations involved in this task. + +JPlag supports more than 15 programming languages. The input code is processed entirely locally, ensuring GDPR–compliance. + +## What inspired you to start this project? + +JPlag was originally developed in 1996 at Karlsruhe Institute of Technology to address plagiarism detection in programming courses. It has since been modernised and expanded for wider adoption in the community. We also incorporated a range of extensions to increase the resilience against typical obfuscation patterns that students may employ to avoid detection. + +## How does this project connect to your academic work? + +It serves both as a research subject and as a practical tool used in teaching. + +## Who contributes to the project? + +Researchers at KIT, students, and external contributors. Development has, however, been heavily driven by our team. We would love to have more external contributors. + +## How are students involved in the project? + +Students contribute across all areas, including design, code, testing, documentation, and releases. + +## How is the project used in teaching or coursework? + +It is integrated through theses and student projects. Students are involved in the development of JPlag and can thus experience open-source development firsthand. + +## What impact has this project had on your students? + +Students gain real-world open-source experience and develop stronger software engineering skills. + +## What impact has the project had beyond the classroom or research? + +JPlag is used in academic institutions around the world. We know of more than 300 universities that use it to uphold academic integrity in their courses. JPlag has more than 50,000 downloads, is widely cited in research publications and integrated into multiple educational platforms. + +## What does it take to maintain the project? + +A core team of doctoral researchers maintains the project, supported by a small team of student developers. + +## What have been the biggest challenges in maintaining the project? + +Balancing research, teaching, and maintenance responsibilities, as well as maintaining consistent release schedules. + +## How do you ensure the project remains sustainable over time? + +By having a team of motivated maintainers and strong involvement from students. + +## How do you engage with your community? + +Through GitHub, documentation, and conferences. + +## Have you taken part in any open source programs or events? + +Not yet. + +## What would you love to achieve by showcasing your project? + +To attract new contributors and support the long-term sustainability of the project. + +## Is there anything else you'd like to share? + +A tool first created in 1996 that is still actively evolving today. diff --git a/content/academia/marsilea-maintainer-spotlight.md b/content/academia/marsilea-maintainer-spotlight.md new file mode 100644 index 000000000..279104b81 --- /dev/null +++ b/content/academia/marsilea-maintainer-spotlight.md @@ -0,0 +1,110 @@ +--- +name: Yimin Zheng +institution: CeMM Research Center for Molecular Medicine of the Austrian Academy of Sciences +department: Rendeiro Lab +projectName: Marsilea +projectRepo: https://github.com/Marsilea-viz/marsilea +maintainerProfiles: + - github: https://github.com/Mr-Milk + - orcid: https://orcid.org/0000-0002-0394-9735 +badges: ["Academic Maintainer", "Postdoctoral Fellow"] +description: "A Python visualization library for declaratively creating composable visualizations, enabling researchers to efficiently express complex scientific data through a cross-layout diagram approach." +--- + +## What is Marsilea, and what does it help people do? + +Marsilea is a Python visualization library designed for data scientists to declaratively create composable visualizations. With the growing size and complexity of scientific data, it can be challenging to express these data in a way that is both intuitive and comprehensive. Marsilea proposes and implements a cross-layout diagram approach to enable efficient expression of complex scientific data. + +## What inspired you to start this project? + +My journey with Marsilea began during the final year of my PhD in computational biology. After publishing a strong paper to secure my degree, I found myself with a rare opportunity to explore ideas beyond my assigned research. The seed for Marsilea was planted when I encountered a seemingly simple visualization challenge: placing a bar plot alongside a cluster heatmap to visualize single-cell gene expression patterns and cell counts. + +Using Seaborn and Matplotlib, this initially seemed straightforward, but as I added more plots, controlling the layout and aesthetics became increasingly complex. What surprised me most was discovering a gap in the Python visualization ecosystem. Despite Python's prominence, there was no elegant solution for composing multiple visualizations with the flexibility I needed. This led me to develop Marsilea as a way to simplify composable visualization and allow researchers to focus on insights rather than implementation. + +## How does this project connect to your academic work? + +Marsilea is widely used in all my research projects and many projects in our lab for creating composable visualizations. It has significantly improved our ability to express data and has saved time when creating visualizations. + +## Who contributes to the project? + +The project is a collaborative effort between myself, PhD student Zhihang Zheng, and several external contributors. + +## How are students involved in the project? + +Zhihang Zheng, a PhD student, has contributed code and documentation, while many other students are involved in testing the library across different use cases. + +## How is the project used in teaching or coursework? + +I introduced Marsilea not only to my lab members but also across the institute. I presented it in an institutional-wide meeting to explain why and how scientists can use Marsilea in their research. + +## What impact has this project had on your students? + +Students involved in the project gain a greater appreciation for open-source work in data science. Many do not have a computer science background, but through this experience they can also learn how to submit issues and pull requests, helping them contribute to other open-source projects. + +## What impact has the project had beyond the classroom or research? + +Although Marsilea is still a relatively young package, it has already had real-world impact. It has resulted in a publication in Genome Biology, a high-impact journal in computational biology. The project has also been adopted by Scanpy, a widely used package for single-cell analysis, and decoupler, which is used for enrichment analysis in omics data. + +## What does it take to maintain the project? + +I am currently the only long-term maintainer. New releases are typically made after bugs are fixed or new features are added. + +## What have been the biggest challenges in maintaining the project? + +The biggest challenge is balancing the time spent maintaining Marsilea with research work. Once the publication is completed, further work on the project does not provide immediate academic rewards. + +Another challenge is funding. We have applied for funding opportunities such as CZI Essential Scientific Software, but it is difficult to secure support for a project that has not yet reached widespread adoption, even though it needs resources to mature. + +## How do you ensure the project remains sustainable over time? + +To increase visibility, I have promoted Marsilea through social media platforms such as Reddit and X. I also published a scientific paper and presented the project as a workshop at the scverse conference. + +We have applied for grants, although these efforts have not yet been successful. + +## How do you engage with your community? + +We provide detailed documentation and contribution guidelines to support users and contributors, but also support users directly via GitHub issues. + +## Have you taken part in any open source programs or events? + +We presented Marsilea as a workshop in the first scverse conference in Munich in 2024 (https://scverse.org/conference2024/). + +## What would you love to achieve by showcasing your project? + +Showcasing Marsilea would help both the project and the broader scientific community. Increased visibility could establish Marsilea as an important tool for computational biology visualization, leading to wider adoption, community growth, potential funding opportunities, and new maintainers. + +## Do you use AI tools in your day to day work on this project? + +Yes, we use GitHub Copilot for code reviews on Pull Requests. I also use Copilot to handle routine tasks, such as correcting typos and minor syntax errors. + +## Do you implement AI into your classroom or coursework? + +No. + +## Has AI changed how you maintain or manage your project? + +Yes. New features can now be implemented faster and tested more thoroughly. We use Copilot to assist with code reviews and to delegate simple, repetitive tasks, which improves our overall management efficiency. + +## Have you experimented with AI driven or automated workflows in your project? + +Yes, we have utilized AI to polish and refine our documentation for better clarity. + +## How do you see your contributors using AI when working on your project? + +I am happy for contributors to use AI to accelerate their work, provided the final contributions consist of high-quality code that is either human-reviewed or backed by thorough testing. + +## What concerns or challenges, if any, do you have about the use of AI in your project or field? + +As a computational biologist, I am concerned about AI "hallucinating" or fabricating biological facts. Furthermore, in data analysis, it is currently difficult for AI to generate a robust pipeline that delivers meaningful biological insights without significant human intervention. + +## How has your approach to maintaining this project evolved over time? + +As Marsilea has matured, the manual maintenance effort has decreased over time. We now integrate AI into our workflow for code reviews and to identify specific areas where we can optimize performance. + +## How do you see AI shaping the future of your project or field? + +I believe AI will fundamentally change how we work and significantly accelerate the research process. However, a major open question is whether this will lead to higher-quality research or simply a higher quantity of output. + +## Is there anything else you'd like to share? + +Marsilea addresses a fundamental gap in the visualization ecosystem for computational biology researchers. By highlighting this work, we hope to attract collaborators who share our vision for more accessible and flexible scientific visualization tools, helping to accelerate research across multiple disciplines.