Git Product home page Git Product logo

last2libre's Introduction

Hi there.

My name is Justin (pronouns: he/him) and I am a creative maker. I am best known as an Open Source contributor and Free Culture advocate originally from the United States. I have participated in numerous Open Source communities and led different initiatives to build sustainable software and communities for over ten years.

In October 2022, I joined Red Hat as the fourth Fedora Community Architect (F.C.A.). I work closely between the Fedora Project community and Red Hat to lead initiatives to grow the Fedora user and developer communities and to make Red Hat & Fedora interactions even more transparent and positive.

Previous to Red Hat, from June 2020 to September 2022, I supported the UNICEF Office of Innovation as the first Open Source Technical Advisor. At UNICEF, I supported the UNICEF Venture Fund and other Open Source activities within the Office of Innovation. Together with a team of mentors, I mentored twenty-three start-up companies of diverse start-up companies from nineteen countries and five continents. Of these companies, fourteen achieved global recognition as Digital Public Goods and three were acquired in multi-million dollar acquisitions. Additionally, I designed a fixed-term Open Source community mentoring program for start-up companies and developer communities that later expanded to Technical Assistance programs run by other mentors for software development and data science & A.I.

Learn more by visiting my website.

last2libre's People

Contributors

encukou avatar jwflory avatar kabniel avatar mockobject avatar srguglielmo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

last2libre's Issues

Write unit tests

Summary

Write unit tests to add support coverage to exporter / importer functionality

Background

Unit tests ensure code remains functional and healthy across changes. It lowers the barrier for contributions and boosts the confidence of potential contributors to make a new change. It also enables different tools such as continuous integration based on unit tests.

Details

Explore pytest again. See test_demo.py locally for an example of how to do this.

Outcome

Project functionality is ensured through unit tests and clear indicators provided when project breaks; increased confidence of new contributors to make changes

Several issues

exporting from lastfm is running into parsing issues it seems and importing into librefm is stopping after a few thousands scrobbles, too.

Try the user "widardd" on lastfm, page 463 and 464 (of 1673) for example. If I skip both it works again until 470 only to stop again:

Got page 470 of 1673.. Wrote page 465-470 of 1673 to file export3.json Traceback (most recent call last): File "./lastexport.py", line 204, in <module> main(server, username, startpage, outfile, infotype) File "./lastexport.py", line 182, in main for page, totalpages, tracks in get_tracks(server, username, startpage, tracktype=infotype): File "./lastexport.py", line 163, in get_tracks tracklist = get_tracklist(response) File "./lastexport.py", line 110, in get_tracklist xmlpage = ET.fromstring(response) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1311, in XML parser.feed(text) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1659, in feed self._raiseerror(v) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1523, in _raiseerror raise err xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 45, column 127

Export scrobble history to JSON data store

Summary

Support JSON format for exporting history from a platform

Background

Currently, last2libre writes data out to a text file separated by tabs and new lines. It would be cleaner to offer support for JSON export. This puts the data into a more easily programmable format for other developers to use the data for their wishes.

Additionally, the importer module can be updated to read in the JSON instead of doing that step manually like it is now.

Details

Write all entries to a dict where each key represents a unique listen. All the values in the dict represent different metadata pieces. At the end of the import process, write the dict out as JSON instead of a text file.

Ideally, if all text file functionality can be deprecated, I consider this a major win.

Outcome

Support data export format to improve ease of use for external developers / users

Configure logging profiles for application

Summary

Use Python logging to log various error messages as configured

Background

Currently, the application emits various print statements to notify of successful and failed behavior. It makes more sense to bring these print statements into the logger module to more effectively enable logging of errors and notices by the application. This makes the application friendlier to use for someone automating the application.

Details

Exploring Python logging is a first step. Later, integrating the debug flag as a global argument would be helpful to enable verbose logging across the application.

Outcome

Logged errors and notices are more visible and effectively captured than what print statements can offer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.