Cool Project Ideas
I like to have at least one side project going at all times and often get bored with one and would like to play with another. Sometimes I find myself (as now) unable to come up with an inspiring, quick side-project.
As I was thinking about it I thought it might be nice to have a community record of projects that people have thought up and thought about working on but never had the time to do. I don't really expect that anyone will look at this list and want to do these things exactly, but I do think it's likely that this would serve as good inspiration.
Also I can only imagine that it'll be cool to see what the people here think up to do.
discussion
add a comment |
I like to have at least one side project going at all times and often get bored with one and would like to play with another. Sometimes I find myself (as now) unable to come up with an inspiring, quick side-project.
As I was thinking about it I thought it might be nice to have a community record of projects that people have thought up and thought about working on but never had the time to do. I don't really expect that anyone will look at this list and want to do these things exactly, but I do think it's likely that this would serve as good inspiration.
Also I can only imagine that it'll be cool to see what the people here think up to do.
discussion
add a comment |
I like to have at least one side project going at all times and often get bored with one and would like to play with another. Sometimes I find myself (as now) unable to come up with an inspiring, quick side-project.
As I was thinking about it I thought it might be nice to have a community record of projects that people have thought up and thought about working on but never had the time to do. I don't really expect that anyone will look at this list and want to do these things exactly, but I do think it's likely that this would serve as good inspiration.
Also I can only imagine that it'll be cool to see what the people here think up to do.
discussion
I like to have at least one side project going at all times and often get bored with one and would like to play with another. Sometimes I find myself (as now) unable to come up with an inspiring, quick side-project.
As I was thinking about it I thought it might be nice to have a community record of projects that people have thought up and thought about working on but never had the time to do. I don't really expect that anyone will look at this list and want to do these things exactly, but I do think it's likely that this would serve as good inspiration.
Also I can only imagine that it'll be cool to see what the people here think up to do.
discussion
discussion
edited 17 hours ago
b3m2a1
asked 18 hours ago
b3m2a1b3m2a1
28k221
28k221
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
Core Data Structures Package(s)
Background
Mathematica is basically a data-structure free zone. This sucks. Using data structures efficiently makes code cleaner, faster, easier to maintain, and quicker to develop. They're great.
Idea
It'd be great if there were a package with some core data-structures built out and supported, either via LibraryLink
libraries or via high-level Mathematica coding, like I do for some of my packages. Ever since I moved to not using a bunch of List
and Association
args I was able to rapidly develop a bunch of new code off the data-structures I wrote because I didn't have to think about the nastiness of dealing with free-floating lists and ensuring good structure/behavior. It'd be fantastic to have lots of these that people could just drop into a package as a dependency.
Implementation Thoughts
I have this InterfaceObjects
paclet that makes it easy to create an object in the mold of like SparseArray
and friends. They're immutable, Association
-based creatures that are designed to not memory-leak, cause memory-bloat when reused, or to have unexpected unpacking or things like that.
The InterfaceObjects
package can be dropped into a BTools-style package as a dependency (I do this already for some of my stuff) and makes it pretty easy to rapidly make new objects as it handles much of the nastiness of type-checking, property management, methods, etc. I got at least four robust, highly-useful objects out of it in about one day of coding and I use them all over my packages.
I'm picturing this providing the basic object structure and then methods/properties being bolted onto this. In the cases where a LibraryLink
library may be used, this would basically mean the constructor to the InterfaceObject
creates a LibraryLink
object and allows the InterfaceObject
to hold this and provide methods on top of that. Where that's not possible, methods on the internal stored data (like a PackedArray
) can be used to allow for methods and manipulation to easily be implemented in an efficient, modular way.
add a comment |
Language Server Protocol for WL
A Language Server Protocol is a way to write IDE and editor functionality (autocomplete, go to definition, etc) without a dependency on a specific editor or IDE.
I'd like to see this done because I normally use Emacs, and while I really like Wolfram Notebooks, I can't see myself ever writing a full-featured, 1000+ LOC package in one. I'd like to be able to use Emacs, or any other code-specific editor, to do that job.
Halirutan's IntelliJ plugin is a great starting point. The hope would be to pull many of the features out of that and into a separate LSP server. Then that functionality would be easily accessible from Emacs, Sublime Text, Vim, VSCode, and most other modern editors.
The specification for LSPs lives here. Effectively, an LSP server is a HTTP server that implements interfaces such as completion or documentLink.
I don't think it would be super easy to write this in WL itself, although it does seem like it might be possible (and entertaining) to do so. Otherwise, it might be easiest to write one in Java since the starting point, Halirutan's IntelliJ plugin, is in Java.
New contributor
2
for reference: Wolfram Language Server, community post.
– WReach
6 hours ago
1
@WReach Wow, I didn't expect it to already exist!
– Carl Lange
4 hours ago
add a comment |
SE Package Creator
Background
There are tons of high-quality posts with functions that are package ready or nearly package ready here. I can only imagine it would be useful to have collections of these functions packaged up in a nice distributable format.
Idea
I think it'd be cool to use the SE API to pull these kinds of posts and their code blocks down for a set of filters (maybe user, topic, score, etc.) and make it easy for people to create a package directly from a collection of answers. Some kind of convenient palette or interface would help a lot.
Implementation Thoughts
My basic idea was to use the SE API connection that I have here to do this. It can do that filtering stuff. Then use some XMLElement
parsing to get the code blocks or alternately build an XMLGraph
to pull these bits using CSS selectors. After that it could basically spit answers into individual files that people can then edit to make their package, probably using the paclet template/setup structure that BTools provides. Not sure how all this would play out in practice, but it definitely would be helpful.
add a comment |
JuliaLink
Background / Idea
I don't know much about Julia, but I would like to. It seems to be an up-and-coming system and has a lot of nice features. It'd be nice to have something like J/Link for it.
Implementation
I set up a J/Link-like link to python which works quite nicely if you can handle the compilation difficulties. Since Julia seems to be easier to integrate with at the C++ level I'm imagining this would be much easier to do on the core library side and then I'd basically just need to mimic the J/Link setup. It wasn't bad to do in python at all by basically just translating and adapting the existing Java code.
add a comment |
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Core Data Structures Package(s)
Background
Mathematica is basically a data-structure free zone. This sucks. Using data structures efficiently makes code cleaner, faster, easier to maintain, and quicker to develop. They're great.
Idea
It'd be great if there were a package with some core data-structures built out and supported, either via LibraryLink
libraries or via high-level Mathematica coding, like I do for some of my packages. Ever since I moved to not using a bunch of List
and Association
args I was able to rapidly develop a bunch of new code off the data-structures I wrote because I didn't have to think about the nastiness of dealing with free-floating lists and ensuring good structure/behavior. It'd be fantastic to have lots of these that people could just drop into a package as a dependency.
Implementation Thoughts
I have this InterfaceObjects
paclet that makes it easy to create an object in the mold of like SparseArray
and friends. They're immutable, Association
-based creatures that are designed to not memory-leak, cause memory-bloat when reused, or to have unexpected unpacking or things like that.
The InterfaceObjects
package can be dropped into a BTools-style package as a dependency (I do this already for some of my stuff) and makes it pretty easy to rapidly make new objects as it handles much of the nastiness of type-checking, property management, methods, etc. I got at least four robust, highly-useful objects out of it in about one day of coding and I use them all over my packages.
I'm picturing this providing the basic object structure and then methods/properties being bolted onto this. In the cases where a LibraryLink
library may be used, this would basically mean the constructor to the InterfaceObject
creates a LibraryLink
object and allows the InterfaceObject
to hold this and provide methods on top of that. Where that's not possible, methods on the internal stored data (like a PackedArray
) can be used to allow for methods and manipulation to easily be implemented in an efficient, modular way.
add a comment |
Core Data Structures Package(s)
Background
Mathematica is basically a data-structure free zone. This sucks. Using data structures efficiently makes code cleaner, faster, easier to maintain, and quicker to develop. They're great.
Idea
It'd be great if there were a package with some core data-structures built out and supported, either via LibraryLink
libraries or via high-level Mathematica coding, like I do for some of my packages. Ever since I moved to not using a bunch of List
and Association
args I was able to rapidly develop a bunch of new code off the data-structures I wrote because I didn't have to think about the nastiness of dealing with free-floating lists and ensuring good structure/behavior. It'd be fantastic to have lots of these that people could just drop into a package as a dependency.
Implementation Thoughts
I have this InterfaceObjects
paclet that makes it easy to create an object in the mold of like SparseArray
and friends. They're immutable, Association
-based creatures that are designed to not memory-leak, cause memory-bloat when reused, or to have unexpected unpacking or things like that.
The InterfaceObjects
package can be dropped into a BTools-style package as a dependency (I do this already for some of my stuff) and makes it pretty easy to rapidly make new objects as it handles much of the nastiness of type-checking, property management, methods, etc. I got at least four robust, highly-useful objects out of it in about one day of coding and I use them all over my packages.
I'm picturing this providing the basic object structure and then methods/properties being bolted onto this. In the cases where a LibraryLink
library may be used, this would basically mean the constructor to the InterfaceObject
creates a LibraryLink
object and allows the InterfaceObject
to hold this and provide methods on top of that. Where that's not possible, methods on the internal stored data (like a PackedArray
) can be used to allow for methods and manipulation to easily be implemented in an efficient, modular way.
add a comment |
Core Data Structures Package(s)
Background
Mathematica is basically a data-structure free zone. This sucks. Using data structures efficiently makes code cleaner, faster, easier to maintain, and quicker to develop. They're great.
Idea
It'd be great if there were a package with some core data-structures built out and supported, either via LibraryLink
libraries or via high-level Mathematica coding, like I do for some of my packages. Ever since I moved to not using a bunch of List
and Association
args I was able to rapidly develop a bunch of new code off the data-structures I wrote because I didn't have to think about the nastiness of dealing with free-floating lists and ensuring good structure/behavior. It'd be fantastic to have lots of these that people could just drop into a package as a dependency.
Implementation Thoughts
I have this InterfaceObjects
paclet that makes it easy to create an object in the mold of like SparseArray
and friends. They're immutable, Association
-based creatures that are designed to not memory-leak, cause memory-bloat when reused, or to have unexpected unpacking or things like that.
The InterfaceObjects
package can be dropped into a BTools-style package as a dependency (I do this already for some of my stuff) and makes it pretty easy to rapidly make new objects as it handles much of the nastiness of type-checking, property management, methods, etc. I got at least four robust, highly-useful objects out of it in about one day of coding and I use them all over my packages.
I'm picturing this providing the basic object structure and then methods/properties being bolted onto this. In the cases where a LibraryLink
library may be used, this would basically mean the constructor to the InterfaceObject
creates a LibraryLink
object and allows the InterfaceObject
to hold this and provide methods on top of that. Where that's not possible, methods on the internal stored data (like a PackedArray
) can be used to allow for methods and manipulation to easily be implemented in an efficient, modular way.
Core Data Structures Package(s)
Background
Mathematica is basically a data-structure free zone. This sucks. Using data structures efficiently makes code cleaner, faster, easier to maintain, and quicker to develop. They're great.
Idea
It'd be great if there were a package with some core data-structures built out and supported, either via LibraryLink
libraries or via high-level Mathematica coding, like I do for some of my packages. Ever since I moved to not using a bunch of List
and Association
args I was able to rapidly develop a bunch of new code off the data-structures I wrote because I didn't have to think about the nastiness of dealing with free-floating lists and ensuring good structure/behavior. It'd be fantastic to have lots of these that people could just drop into a package as a dependency.
Implementation Thoughts
I have this InterfaceObjects
paclet that makes it easy to create an object in the mold of like SparseArray
and friends. They're immutable, Association
-based creatures that are designed to not memory-leak, cause memory-bloat when reused, or to have unexpected unpacking or things like that.
The InterfaceObjects
package can be dropped into a BTools-style package as a dependency (I do this already for some of my stuff) and makes it pretty easy to rapidly make new objects as it handles much of the nastiness of type-checking, property management, methods, etc. I got at least four robust, highly-useful objects out of it in about one day of coding and I use them all over my packages.
I'm picturing this providing the basic object structure and then methods/properties being bolted onto this. In the cases where a LibraryLink
library may be used, this would basically mean the constructor to the InterfaceObject
creates a LibraryLink
object and allows the InterfaceObject
to hold this and provide methods on top of that. Where that's not possible, methods on the internal stored data (like a PackedArray
) can be used to allow for methods and manipulation to easily be implemented in an efficient, modular way.
answered 17 hours ago
b3m2a1b3m2a1
28k221
28k221
add a comment |
add a comment |
Language Server Protocol for WL
A Language Server Protocol is a way to write IDE and editor functionality (autocomplete, go to definition, etc) without a dependency on a specific editor or IDE.
I'd like to see this done because I normally use Emacs, and while I really like Wolfram Notebooks, I can't see myself ever writing a full-featured, 1000+ LOC package in one. I'd like to be able to use Emacs, or any other code-specific editor, to do that job.
Halirutan's IntelliJ plugin is a great starting point. The hope would be to pull many of the features out of that and into a separate LSP server. Then that functionality would be easily accessible from Emacs, Sublime Text, Vim, VSCode, and most other modern editors.
The specification for LSPs lives here. Effectively, an LSP server is a HTTP server that implements interfaces such as completion or documentLink.
I don't think it would be super easy to write this in WL itself, although it does seem like it might be possible (and entertaining) to do so. Otherwise, it might be easiest to write one in Java since the starting point, Halirutan's IntelliJ plugin, is in Java.
New contributor
2
for reference: Wolfram Language Server, community post.
– WReach
6 hours ago
1
@WReach Wow, I didn't expect it to already exist!
– Carl Lange
4 hours ago
add a comment |
Language Server Protocol for WL
A Language Server Protocol is a way to write IDE and editor functionality (autocomplete, go to definition, etc) without a dependency on a specific editor or IDE.
I'd like to see this done because I normally use Emacs, and while I really like Wolfram Notebooks, I can't see myself ever writing a full-featured, 1000+ LOC package in one. I'd like to be able to use Emacs, or any other code-specific editor, to do that job.
Halirutan's IntelliJ plugin is a great starting point. The hope would be to pull many of the features out of that and into a separate LSP server. Then that functionality would be easily accessible from Emacs, Sublime Text, Vim, VSCode, and most other modern editors.
The specification for LSPs lives here. Effectively, an LSP server is a HTTP server that implements interfaces such as completion or documentLink.
I don't think it would be super easy to write this in WL itself, although it does seem like it might be possible (and entertaining) to do so. Otherwise, it might be easiest to write one in Java since the starting point, Halirutan's IntelliJ plugin, is in Java.
New contributor
2
for reference: Wolfram Language Server, community post.
– WReach
6 hours ago
1
@WReach Wow, I didn't expect it to already exist!
– Carl Lange
4 hours ago
add a comment |
Language Server Protocol for WL
A Language Server Protocol is a way to write IDE and editor functionality (autocomplete, go to definition, etc) without a dependency on a specific editor or IDE.
I'd like to see this done because I normally use Emacs, and while I really like Wolfram Notebooks, I can't see myself ever writing a full-featured, 1000+ LOC package in one. I'd like to be able to use Emacs, or any other code-specific editor, to do that job.
Halirutan's IntelliJ plugin is a great starting point. The hope would be to pull many of the features out of that and into a separate LSP server. Then that functionality would be easily accessible from Emacs, Sublime Text, Vim, VSCode, and most other modern editors.
The specification for LSPs lives here. Effectively, an LSP server is a HTTP server that implements interfaces such as completion or documentLink.
I don't think it would be super easy to write this in WL itself, although it does seem like it might be possible (and entertaining) to do so. Otherwise, it might be easiest to write one in Java since the starting point, Halirutan's IntelliJ plugin, is in Java.
New contributor
Language Server Protocol for WL
A Language Server Protocol is a way to write IDE and editor functionality (autocomplete, go to definition, etc) without a dependency on a specific editor or IDE.
I'd like to see this done because I normally use Emacs, and while I really like Wolfram Notebooks, I can't see myself ever writing a full-featured, 1000+ LOC package in one. I'd like to be able to use Emacs, or any other code-specific editor, to do that job.
Halirutan's IntelliJ plugin is a great starting point. The hope would be to pull many of the features out of that and into a separate LSP server. Then that functionality would be easily accessible from Emacs, Sublime Text, Vim, VSCode, and most other modern editors.
The specification for LSPs lives here. Effectively, an LSP server is a HTTP server that implements interfaces such as completion or documentLink.
I don't think it would be super easy to write this in WL itself, although it does seem like it might be possible (and entertaining) to do so. Otherwise, it might be easiest to write one in Java since the starting point, Halirutan's IntelliJ plugin, is in Java.
New contributor
New contributor
answered 16 hours ago
Carl LangeCarl Lange
3,9353
3,9353
New contributor
New contributor
2
for reference: Wolfram Language Server, community post.
– WReach
6 hours ago
1
@WReach Wow, I didn't expect it to already exist!
– Carl Lange
4 hours ago
add a comment |
2
for reference: Wolfram Language Server, community post.
– WReach
6 hours ago
1
@WReach Wow, I didn't expect it to already exist!
– Carl Lange
4 hours ago
2
2
for reference: Wolfram Language Server, community post.
– WReach
6 hours ago
for reference: Wolfram Language Server, community post.
– WReach
6 hours ago
1
1
@WReach Wow, I didn't expect it to already exist!
– Carl Lange
4 hours ago
@WReach Wow, I didn't expect it to already exist!
– Carl Lange
4 hours ago
add a comment |
SE Package Creator
Background
There are tons of high-quality posts with functions that are package ready or nearly package ready here. I can only imagine it would be useful to have collections of these functions packaged up in a nice distributable format.
Idea
I think it'd be cool to use the SE API to pull these kinds of posts and their code blocks down for a set of filters (maybe user, topic, score, etc.) and make it easy for people to create a package directly from a collection of answers. Some kind of convenient palette or interface would help a lot.
Implementation Thoughts
My basic idea was to use the SE API connection that I have here to do this. It can do that filtering stuff. Then use some XMLElement
parsing to get the code blocks or alternately build an XMLGraph
to pull these bits using CSS selectors. After that it could basically spit answers into individual files that people can then edit to make their package, probably using the paclet template/setup structure that BTools provides. Not sure how all this would play out in practice, but it definitely would be helpful.
add a comment |
SE Package Creator
Background
There are tons of high-quality posts with functions that are package ready or nearly package ready here. I can only imagine it would be useful to have collections of these functions packaged up in a nice distributable format.
Idea
I think it'd be cool to use the SE API to pull these kinds of posts and their code blocks down for a set of filters (maybe user, topic, score, etc.) and make it easy for people to create a package directly from a collection of answers. Some kind of convenient palette or interface would help a lot.
Implementation Thoughts
My basic idea was to use the SE API connection that I have here to do this. It can do that filtering stuff. Then use some XMLElement
parsing to get the code blocks or alternately build an XMLGraph
to pull these bits using CSS selectors. After that it could basically spit answers into individual files that people can then edit to make their package, probably using the paclet template/setup structure that BTools provides. Not sure how all this would play out in practice, but it definitely would be helpful.
add a comment |
SE Package Creator
Background
There are tons of high-quality posts with functions that are package ready or nearly package ready here. I can only imagine it would be useful to have collections of these functions packaged up in a nice distributable format.
Idea
I think it'd be cool to use the SE API to pull these kinds of posts and their code blocks down for a set of filters (maybe user, topic, score, etc.) and make it easy for people to create a package directly from a collection of answers. Some kind of convenient palette or interface would help a lot.
Implementation Thoughts
My basic idea was to use the SE API connection that I have here to do this. It can do that filtering stuff. Then use some XMLElement
parsing to get the code blocks or alternately build an XMLGraph
to pull these bits using CSS selectors. After that it could basically spit answers into individual files that people can then edit to make their package, probably using the paclet template/setup structure that BTools provides. Not sure how all this would play out in practice, but it definitely would be helpful.
SE Package Creator
Background
There are tons of high-quality posts with functions that are package ready or nearly package ready here. I can only imagine it would be useful to have collections of these functions packaged up in a nice distributable format.
Idea
I think it'd be cool to use the SE API to pull these kinds of posts and their code blocks down for a set of filters (maybe user, topic, score, etc.) and make it easy for people to create a package directly from a collection of answers. Some kind of convenient palette or interface would help a lot.
Implementation Thoughts
My basic idea was to use the SE API connection that I have here to do this. It can do that filtering stuff. Then use some XMLElement
parsing to get the code blocks or alternately build an XMLGraph
to pull these bits using CSS selectors. After that it could basically spit answers into individual files that people can then edit to make their package, probably using the paclet template/setup structure that BTools provides. Not sure how all this would play out in practice, but it definitely would be helpful.
answered 17 hours ago
b3m2a1b3m2a1
28k221
28k221
add a comment |
add a comment |
JuliaLink
Background / Idea
I don't know much about Julia, but I would like to. It seems to be an up-and-coming system and has a lot of nice features. It'd be nice to have something like J/Link for it.
Implementation
I set up a J/Link-like link to python which works quite nicely if you can handle the compilation difficulties. Since Julia seems to be easier to integrate with at the C++ level I'm imagining this would be much easier to do on the core library side and then I'd basically just need to mimic the J/Link setup. It wasn't bad to do in python at all by basically just translating and adapting the existing Java code.
add a comment |
JuliaLink
Background / Idea
I don't know much about Julia, but I would like to. It seems to be an up-and-coming system and has a lot of nice features. It'd be nice to have something like J/Link for it.
Implementation
I set up a J/Link-like link to python which works quite nicely if you can handle the compilation difficulties. Since Julia seems to be easier to integrate with at the C++ level I'm imagining this would be much easier to do on the core library side and then I'd basically just need to mimic the J/Link setup. It wasn't bad to do in python at all by basically just translating and adapting the existing Java code.
add a comment |
JuliaLink
Background / Idea
I don't know much about Julia, but I would like to. It seems to be an up-and-coming system and has a lot of nice features. It'd be nice to have something like J/Link for it.
Implementation
I set up a J/Link-like link to python which works quite nicely if you can handle the compilation difficulties. Since Julia seems to be easier to integrate with at the C++ level I'm imagining this would be much easier to do on the core library side and then I'd basically just need to mimic the J/Link setup. It wasn't bad to do in python at all by basically just translating and adapting the existing Java code.
JuliaLink
Background / Idea
I don't know much about Julia, but I would like to. It seems to be an up-and-coming system and has a lot of nice features. It'd be nice to have something like J/Link for it.
Implementation
I set up a J/Link-like link to python which works quite nicely if you can handle the compilation difficulties. Since Julia seems to be easier to integrate with at the C++ level I'm imagining this would be much easier to do on the core library side and then I'd basically just need to mimic the J/Link setup. It wasn't bad to do in python at all by basically just translating and adapting the existing Java code.
answered 17 hours ago
b3m2a1b3m2a1
28k221
28k221
add a comment |
add a comment |