24

AlphaHooks is an Integrated Library Environment used to hook between multiple libraries written in different programming languages.

Project Type
Existing open source project
Summary

AlphaHooks is an Integrated Library Environment used to hook between multiple libraries written in different programming languages.

Description
The application is in its planning stage only and targeted mainly towards data scientists. We can decide on a better name later. Right now I'm looking for developers who are interested in writing the standard library for the application. I also need developers good at other languages such as C, C++ and Java to help me implement the bridges. Since this project is very early in its development, everyone will get their fare share of credit. I will be moving it to an Organization Repo as soon as we get more collaborators. Example Use Case: DroneLibrary.so OpenCV.py Speech.java Our vision is to let data scientists use these three libraries in the same project interactively. The best example is to easily write flight paths for a drone that can also detect object on the ground. Another example is to let users script Bitcoin or currency trading while seeing real-time stats in the GUI. The use cases are endless and I want to find developers with the same vision as me. Knowledge of PyQt is not required if you don't intend on contributing to the GUI. The application always need interesting ideas for standard libraries. If you have an idea and want to start implementing it, then please contact me on the gitter chat room or on here. All due credit will be given of course. Can't wait to meet kick ass developers. ^_^
Tech Stack
PyQt, Python, Java, C++, C, Lua
Current Team Size
2
URL
Comments
  • 1
    Following this collab…
  • 1
    Are you planning to write API wrappers for different libraries in different languages into Python?
  • 1
    @github Sort of. Not just python. But between all compatible languages. I want to start with Python and Lua since there is already a solid wrapper library.

    https://pypi.python.org/pypi/lupa/

    Once they are compatible with each other. I will start adding other languages. Takes a lot of effort from my side since I'm new at this kind of stuff. It's a good thing I enjoy doing it.
  • 1
    @daegontaven so all wrappers will be written in python?
  • 2
    @github Yeah If it's possible.
  • 2
    @daegontaven the most difficult part will be type casting. Different languages different data types. And since your scope is data science, those libraries use complex matrix structures in different languages. If you could map the input and output data types, then remaining should be comparatively easier (that's my assumption)
  • 1
    @github I'm think of only adding some basic functionality first. Only some basic types and basic libraries to start with. Then adding more features as they are requested. Right now I'm more worried about letting another languages call GUI methods. Especially in the case of Java becuase it cannot access the namespace of the GUI directly. So I have to build some way to connect the GUI and the languages. C and C++ can be done with extensions or the ctypes module.
  • 2
    @daegontaven I am not clear why you want to hit GUI of other language. Instead, hit the core method the GUI calls, and write a wrapper over that. Then, from your GUI, call the core method using your wrapper. Let me know I misunderstood anything
  • 1
    @github I reread your comment and didn't understand what you meant. I'll explain again. Lets say I have a method updateLinePlot(x, y) which is a method defined in PyQt to put a coordinate on live line plot. I can easily call that method from C/C++ using the Python/C ApI. But not from Java as the JVM is in another process. I meant to say since the GUI is written in PyQt(Python), if I wanted to change properties of the GUI from Java(opened in another process) its not very easy. Not impossible, but not easy.
  • 1
    @daegontaven for the scenario you mentioned there is something called py4j. It binds python object with java object instantiated in JVM.
    So, through python you can make any calls to Java methods for that particular object. You need to have py4j in python code and py4j.jar for java to set things up. Look about it and let me know if it makes sense. If I am not clear, I can write an elaborate comment next time.
  • 2
    @github I'd taken a brief look at Py4J site earlier. Their documention is down however. I submitted an issue a bit back.

    I'm still looking into it. Java is not especially a priority until Lua is done. The current focus is getting the Python PreAlpaha done. Lots of major things to get done. It's been 4 months I've been doing this pretty much alone.
  • 2
    @daegontaven oh. I used py4j like a year back. Wasn't updated about its issue. it seems a really difficult problem statement. I am also busy with my new personal project during weekend. And weekdays office.. Once I finish my project, will try to join and contribute to yours. Till then, my best wishes for your effort and hope you get tons of contributors. Best wishes.
  • 2
    @github LOL they just replied and fixed the documentation. Thanks for the well wishes!
Your Job Suck?
Get a Better Job
Add Comment