What are your other programming projects?
What are your other programming projects?
Hi, what are your other programming projects? This seems like a great place to share ideas and maybe some knowledge.
I personally have a really broad interest. I've a tiny bit of experience with reverse engineering (finding out how a program works by looking at it's disassemblies) I've worked on a little simple stand-alone synthesizer for some days (it uses waveout, which is kind of outdated. I want to write a new one which uses WASAPI, but I'll have to look into that), I'm currently learning about compilers and interpreters (and of course, I want to build one to compile my own super-programming-language in the future ), I'm just getting started with programming for the Game Boy Advance (well, an emulator, to be honest) and I want to get started with OpenCL, OpenGL (well, more with shaders actually) and I want to build a GUI library. Further, I made a content-management-system for a site, but that's a lot less interesting than the other stuff IMHO.
I personally have a really broad interest. I've a tiny bit of experience with reverse engineering (finding out how a program works by looking at it's disassemblies) I've worked on a little simple stand-alone synthesizer for some days (it uses waveout, which is kind of outdated. I want to write a new one which uses WASAPI, but I'll have to look into that), I'm currently learning about compilers and interpreters (and of course, I want to build one to compile my own super-programming-language in the future ), I'm just getting started with programming for the Game Boy Advance (well, an emulator, to be honest) and I want to get started with OpenCL, OpenGL (well, more with shaders actually) and I want to build a GUI library. Further, I made a content-management-system for a site, but that's a lot less interesting than the other stuff IMHO.
Re: What are your other programming projects?
I've been working on some of my current projects for about 5 years now. They're mainly implementations of declarative programming languages. So if 1 KLOC is 1000 Lines Of Code, then I have
Sequential logic programming: I've currently got a Prolog system (compiler, debugger, run-time, libraries etc.) which is about roughly 0.5 KLOC of assembly 20 KLOC of C and 20 KLOC of Prolog. I spend more time documenting this project than writing code. I've written about 350 pages of the reference manual. This project is nearly ready to send out for beta testing. This project gets updated daily.
Parallel logic programming: I've got a parser and some code analysis routines written in Prolog for a parallel logic language. It's still early days with about 1.5 KLOC of code written so far. Still plenty left to do there. This will be used to write systems software for highly parallel systems. This gets updated daily.
Other logic programming: I've got about 2 KLOC of interpreters for various small logic programming languages - mainly proof of concept/evaluation prototype languages. These are variations of interpreters I've found in books or research papers. If I need to design a small language I look here first for ideas and code to reuse. I add to this quite often.
Scheme: A compiler/runtime for a subset of Scheme which is about 5 KLOC of C and 2 KLOC of Scheme. This hasn't been updated for a while, it does what I need it to do.
Functional programming: About 10 KLOC of Scheme code implementing various compilers and abstract machines for different types of lambda calculus reducers (weak head reducers, fully-fledged reducers, eager, and lazy). This gets added to every time I come across a new abstract machine design which isn't that often.
Object-oriented programming About 6 KLOC of C code for a Smalltalk VM. Not finished yet but nearly, maybe 2 or 3 KLOC left. I work on this sporadically.
Sequential logic programming: I've currently got a Prolog system (compiler, debugger, run-time, libraries etc.) which is about roughly 0.5 KLOC of assembly 20 KLOC of C and 20 KLOC of Prolog. I spend more time documenting this project than writing code. I've written about 350 pages of the reference manual. This project is nearly ready to send out for beta testing. This project gets updated daily.
Parallel logic programming: I've got a parser and some code analysis routines written in Prolog for a parallel logic language. It's still early days with about 1.5 KLOC of code written so far. Still plenty left to do there. This will be used to write systems software for highly parallel systems. This gets updated daily.
Other logic programming: I've got about 2 KLOC of interpreters for various small logic programming languages - mainly proof of concept/evaluation prototype languages. These are variations of interpreters I've found in books or research papers. If I need to design a small language I look here first for ideas and code to reuse. I add to this quite often.
Scheme: A compiler/runtime for a subset of Scheme which is about 5 KLOC of C and 2 KLOC of Scheme. This hasn't been updated for a while, it does what I need it to do.
Functional programming: About 10 KLOC of Scheme code implementing various compilers and abstract machines for different types of lambda calculus reducers (weak head reducers, fully-fledged reducers, eager, and lazy). This gets added to every time I come across a new abstract machine design which isn't that often.
Object-oriented programming About 6 KLOC of C code for a Smalltalk VM. Not finished yet but nearly, maybe 2 or 3 KLOC left. I work on this sporadically.
Every universe of discourse has its logical structure --- S. K. Langer.
Re: What are your other programming projects?
I'm building a compiler for C++, or well currently the parser is only halfway done, but the compiler bails out at about 2.5GB memory usage with an internal compiler error in dwarf2out.c.
So I've decided to implement matching, using triple nested lambdas and a fancy macro replacement, which works, that is, when it doesn't trigger an internal compiler error. (It compiles on Clang at least).
So due to the compiler issues I've decided to lay the parser and lexer to rest for a while, and focus on the ast-processing, which I've been spending a few weeks on forcing the compiler to auto generate using template meta programming. - And I'm glad to announce that I haven't gotten any internal compiler errors yet.
- That is except from the linker, which can't handle object files with size above 2GB, but compiling with -Os solves this, for now at least.
I'm building the compiler using C++11/14, and I'm making extremely heavy use of variadic templates, lambdas and template meta programming. The last of these is the reason I'm having a lot of issues with my tools.
The compiled project is currently on pause tho, because I'm writing a C++14 ISO proposal for the Library Evolutions group, also because I'm trying to bootstrap exceptions and rtti in my toy kernel.
So I've decided to implement matching, using triple nested lambdas and a fancy macro replacement, which works, that is, when it doesn't trigger an internal compiler error. (It compiles on Clang at least).
So due to the compiler issues I've decided to lay the parser and lexer to rest for a while, and focus on the ast-processing, which I've been spending a few weeks on forcing the compiler to auto generate using template meta programming. - And I'm glad to announce that I haven't gotten any internal compiler errors yet.
- That is except from the linker, which can't handle object files with size above 2GB, but compiling with -Os solves this, for now at least.
I'm building the compiler using C++11/14, and I'm making extremely heavy use of variadic templates, lambdas and template meta programming. The last of these is the reason I'm having a lot of issues with my tools.
The compiled project is currently on pause tho, because I'm writing a C++14 ISO proposal for the Library Evolutions group, also because I'm trying to bootstrap exceptions and rtti in my toy kernel.
// Skeen
// Developing a yet unnamed microkernel in C++14.
// Developing a yet unnamed microkernel in C++14.
Re: What are your other programming projects?
Likewise, really broad interestkutkloon7 wrote:I personally have a really broad interest
Nothing's more time-consuming but rewarding. In the nineties I would sit around all day and write keygens, game trainers, exploits, cracks, viruses, and worms simply because it was elating to not only be able to read someone else's code, but to then take over someone else's code entirely. I never released anything though... just personal education.kutkloon7 wrote:I've a tiny bit of experience with reverse engineering (finding out how a program works by looking at it's disassemblies)
Windows person eh? Played with VST's/VSTi's? The interface is pretty straight forward and you immediately dive into waveform manipulation without worrying about the rest.kutkloon7 wrote:I've worked on a little simple stand-alone synthesizer for some days (it uses waveout, which is kind of outdated. I want to write a new one which uses WASAPI, but I'll have to look into that),
That's just as fun (or more in certain ways) as working on an OS. I've never finished any of my previous languages, but I have tons of fun every time I start a new one. If you want to build an actual compiler, I'd start with a basic assembler first and slowly refactor that back (start with something like stack frames/calling conventions and work out from there). If you want to build an interpreter, I'd start with memory management and variants, an work backward from there. When you want the two to meet (JIT or purely compiled at that point), take what you know from both.kutkloon7 wrote:I'm currently learning about compilers and interpreters (and of course, I want to build one to compile my own super-programming-language in the future ),
Start with the basics of OpenGL 1.0-2.0 (polygons, bindings, frame-buffers, etc) before you dive into shaders. OpenGL is an interface that can get very muddled the moment you extend past the basic tutorials if you're not careful to completely understand what you have bound and what you're doing with it. Shaders only complicate that. Just a recommendation.kutkloon7 wrote:I want to get started with OpenCL, OpenGL (well, more with shaders actually) and I want to build a GUI library.
As for me, outside of what I've already stated in inline response:
- Compression. I have spent 15+ years chasing compression. Am obsessed really. Entropy drives me mad at times. I always have a compression related project "idle" and on hand if not active.
- Large system analysis. Markets and what not (literally, I spend more time staring at NASDAQ data and trying to model it than I really should for my health). A lot of playing with simulation of large system behavior. Also, in general, an unhealthy obsession.
- Natural language processing. Linguistics is a passion outside of my interest in computing, so NLP plays a solid role in a lot of things that I do (where appropriate of course).
- Machine learning. I do a lot of experimentation with machine learning, heavily related to 1-3. No active personal projects for the time being, but I've got one going at work right now.
- Network "efficient" applications. I spend a lot of time working on concepts of high-volume I/O within a networked environment. Recent projects: CachedFS (note the "d"), a purposely inconsistent asynchronously updating file system proxy driver specifically for network based mounts where immediate consistency is not necessary but frequency of consistency is guaranteed; librenode: an asynchronous I/O library that facilitate higher level event tracking an prevents starvation; comparable to something like libaio but more flexible (with results just about comparable ).
- Distributed systems. From distributed computing to basic resource management, I really have a fascination with distributed environments. Decentralization, how to make it fail-over safely, generic node management, solving spit-brain, how to manage authorization in an environment where trust isn't implicit, etc. I have multiple projects related to this (one active, two idle). n-Bazaar/Renode are two parallel projects both in a semi-idle/semi-active state addressing some of these issues in a generic manner.
- Web applications (of all types) are my bread-and-butter. Not a huge fan actually, but I've been doing it forever now and that's what I get paid to do above all else. Occasionally that translates to personal projects (mostly in the form of frameworks) but I never bother to finish any of them because I usually don't care. I have one for nodejs I've got sitting idle currently, but that's about it.
Re: What are your other programming projects?
Game programming, I am programming a bit of a Minecraft clone in C++ using Direct3D.
Windows network programming (Winsock) - using this to make my Minecraft clone multiplayer.
Windows network programming (Winsock) - using this to make my Minecraft clone multiplayer.
Currently developing Lithium OS (LiOS).
Recursive paging saves lives.
"I want to change the world, but they won't give me the source code."
Recursive paging saves lives.
"I want to change the world, but they won't give me the source code."
Re: What are your other programming projects?
1. I am making a Console-like text editor for Linux, and coding another one in C#, for Windows (cause I hate the Windows Notepad)
2. I am also using OpenGL to make a new game.
3. I am writing a simple FPS Game using CryEngine3, (Pretty much incomplete)
2. I am also using OpenGL to make a new game.
3. I am writing a simple FPS Game using CryEngine3, (Pretty much incomplete)
When you say, "I wrote a program that crashed Windows," people just stare at you blankly and say, "Hey, I got those with the system, for free." - Linus Torvalds
64 bit Kernel in early development
http://github.com/nerdguy12/core64
64 bit Kernel in early development
http://github.com/nerdguy12/core64
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: What are your other programming projects?
0. My distributed, managed OS is on hold and I expect it to be for quite a while.
1. Various projects that require a special but cheap setup (e.g., multitouch table, 3D scanner, etc.).
2. An XML (validating) parser, which I use in most of my other projects.
3. A side channel attack-resilient crypto library implementing various protocols. Very much WIP.
4. A file server (implements FTP and FTPS) and a Web server (implements HTTP, HTTPS, and CGI).
5. A revision control system (an XML-based SCCS implementation, in particular).
6. A maintainable build system based on SCCS, makefiles, and shell scripts, which I use for most projects.
7. A XUL implementation. Currently, its only back end is GTK+ but this will change soon.
8. Various small languages and VM's. I'll hopefully have more time to dedicate to this soon.
9. A small emulator framework. I implemented a NES emulator on top of it.
I'm also interested in AI and machine learning but don't have anything particularly interesting to brag with at the moment. It's mostly small programs to recognize various types of patterns and/or do optimization. I also did things related to digital signal processing in the past but don't have anything going on for the moment.
1. Various projects that require a special but cheap setup (e.g., multitouch table, 3D scanner, etc.).
2. An XML (validating) parser, which I use in most of my other projects.
3. A side channel attack-resilient crypto library implementing various protocols. Very much WIP.
4. A file server (implements FTP and FTPS) and a Web server (implements HTTP, HTTPS, and CGI).
5. A revision control system (an XML-based SCCS implementation, in particular).
6. A maintainable build system based on SCCS, makefiles, and shell scripts, which I use for most projects.
7. A XUL implementation. Currently, its only back end is GTK+ but this will change soon.
8. Various small languages and VM's. I'll hopefully have more time to dedicate to this soon.
9. A small emulator framework. I implemented a NES emulator on top of it.
I'm also interested in AI and machine learning but don't have anything particularly interesting to brag with at the moment. It's mostly small programs to recognize various types of patterns and/or do optimization. I also did things related to digital signal processing in the past but don't have anything going on for the moment.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
Re: What are your other programming projects?
Yup, I'm still here, even if I've been inactive for a while.
Main projects:
Main projects:
- My operating system (obviously)
A home server, which will probably run on the RasPI, which has been fully configured before shipping; mainly, a server for the masses. We need this rather urgently (and if I could be bothered, and not sat in a computer lab at uni right now, I could post a full page on this).
My global, distributed file system (have posted on about this before)
Re: What are your other programming projects?
The only thing I'm working at the moment on is my personal finance web application, Accountre. I'm building it primarily for myself (since all the personal finance software out there sucks) but hopefully other people might like it too. I'm using C#, ASP.NET MVC and Entity Framework as the main building blocks.
Re: What are your other programming projects?
@JackScott : I would look a lot nicer if you do some input validation on the send button ( I do not think it makes a db query yet ) -it redirects even on simple send (ie with no data on the textbox).
--Thomas
--Thomas
Re: What are your other programming projects?
real time raytracer with physics
https://www.youtube.com/watch?v=zFm2mt5pT14
https://www.youtube.com/watch?v=zFm2mt5pT14[/youtube]
there is a software version with sse that i want to integrate in the OS as well, even in 100% software mode it doesn't run too bad on a quadri core =)
in fact it was even one of my first motivation to get into os dev, to have an hardware layer that is entirely made for 3D rendering, physics, video and multimedia, even if it's made a bit like android or cell phone OS that are more or less single task, or not massively multi task, but allow to have direct and exclusive access to all computational resources of the computer, instead of having all resources shared by all kind of services, and os stuff, and other application, which make performances a bit unstable, and create lot of complexity with concurrent access to hardware and cpu resources and memory protection
https://www.youtube.com/watch?v=zFm2mt5pT14
https://www.youtube.com/watch?v=zFm2mt5pT14[/youtube]
there is a software version with sse that i want to integrate in the OS as well, even in 100% software mode it doesn't run too bad on a quadri core =)
in fact it was even one of my first motivation to get into os dev, to have an hardware layer that is entirely made for 3D rendering, physics, video and multimedia, even if it's made a bit like android or cell phone OS that are more or less single task, or not massively multi task, but allow to have direct and exclusive access to all computational resources of the computer, instead of having all resources shared by all kind of services, and os stuff, and other application, which make performances a bit unstable, and create lot of complexity with concurrent access to hardware and cpu resources and memory protection
Re: What are your other programming projects?
The last (and actually the first) thing I finished to a point that I'm satisfied with is a Python/OpenCL N-Body simulator. Since that, I've been trying to get some infrastructure set up for writing algorithmic trading bots for cryptocurrencies.
But in general, the things I'd like to get into after I get done with what I'm doing now:
Genetic Programming (would make a nice combo with the algo trader)
Natural Language Parsing
Compiler stuff (using LLVM)
Distributed stuff
To anyone interested in compilers, I highly recommend LLVM. The learning curve is crazy, but it's a great system.
But in general, the things I'd like to get into after I get done with what I'm doing now:
Genetic Programming (would make a nice combo with the algo trader)
Natural Language Parsing
Compiler stuff (using LLVM)
Distributed stuff
To anyone interested in compilers, I highly recommend LLVM. The learning curve is crazy, but it's a great system.
Re: What are your other programming projects?
My hobby OS is on hold at the moment. I am spending most of my time developing a BASIC compiler. The lexer is ready and the parser is half way. I chose BASIC for sentimental reasons (I started programming in BASIC) and because BASIC is quite a straightforward language. At least, the dialect I am aiming at is.
My real ambition is writing an optimizing C compiler that emits code for NASM, for all possible output formats that NASM supports. This is a bit too ambitious for now. I thought a BASIC compiler would be better to start with.
My real ambition is writing an optimizing C compiler that emits code for NASM, for all possible output formats that NASM supports. This is a bit too ambitious for now. I thought a BASIC compiler would be better to start with.
Re: What are your other programming projects?
BTW Nice thread, this. I like reading about everybody's interests.
- Lionel
- Member
- Posts: 117
- Joined: Fri Jul 16, 2010 2:16 pm
- Libera.chat IRC: ryanel
- Location: California
Re: What are your other programming projects?
Ymgyrch -- Multi-emulator, working on CHIP-8
flerovium -- Package Manager
belirium-init -- Init replacement based of of BSD init
crsmake -- CSV parsing cross compiling make
ksyslogd -- Kernel Level System Logging Daemon
InitFS -- Intuitively Next In The (line of) File Systems -- Ramdisk
I need to not handle so many projects at once...
flerovium -- Package Manager
belirium-init -- Init replacement based of of BSD init
crsmake -- CSV parsing cross compiling make
ksyslogd -- Kernel Level System Logging Daemon
InitFS -- Intuitively Next In The (line of) File Systems -- Ramdisk
I need to not handle so many projects at once...