What are your (current) hobby projects? What languages or libraries are you using? How usable or complete is it? What makes what you're doing novel or great?
No need to be smug or anything, or get all angry at other people for using <thing you hate>. Just share what you're up to. Add a URL if it's public too, if you want.
I'll start. I'm writing a stack-based language in Racket for use in embedded devices. It's already got Hindley-Milner style type inference, it just needs to actually produce output.
I'm also planning a modal text editor that feels like vim and a music-making program somehow.
But enough about me. Let's get some actual content on the front page of /code/.
I've started a little handheld GPS tracking/plotting app/script...
Rather modest at the moment, just a save/load function + current path plot..
Uses Js / Droidscript
A raspberry pi motion camera that uploads photos to somewhere on the web.
I also want it to blink an LED every time a photo is taken but I don't know how to trigger that.
Voroni diagram generator with guile and c
A unix shell in C, not derived from sh or csh or something, with compiled execution and other features for enhanced interactive and programming use.
I'm working on my own LFS system. http://linuxfromscratch.org/
Writing a textboard engine in C. Fun times
I'm trying to improve game-bots to lower ban-rates.
I make a linux program that shows you which programs are using up the most CPU.
>>16
a shittier version of top
?
>>17
it's one 10 thousandth of the length in code size, im happy about that
code size is nothing, show me the binary
I'm maintaining one of those item database sites, that every MMORPG has. Made it, because the most popular database site for this game was closed down, due to lack of revenue.
Was a fun project, figuring out how the game stores data, finding a way to mod the game, JavaScript with AngularJS, C# on backend, a bunch of SQL.
Haven't had much willpower to work on it lately though.
You can check out my project here: http://3chan.ml/
I bet you won't know what it runs on. ;)
Also, I'm practising FRP. Making an incremental game with it, and smashing lambda-term (ncurses but not shit) together with React (OCaml).
It's nice reading about you guys projects :)
I'm making a scheme macro system
>>23
Sounds cool, you should post it some time if it's ever ready.
>ncurses but not shit
dubious..
>>26
Understandable. Pretend I called it a terminal manipulation library instead. It's got nice things like double buffered treat-it-like-a-bitmap-image-basically drawing, proper text edition and a widget library.
The incremental game has lost my interest in favour of this. My main effort is going into figuring out how to make a reactive TUI without feedback loops (e.g. editable text field widgets, and widgets wrapping other widgets that can tell each other what dimensions to be).
>>27
I got it. I'm mamking it nice and simple as well, i.e. to make any given widget fill the space available, you just wrap it in a space-filling widget, rather than every widget having that same toggle.
Recently I've made a blog, events calendar, and BBS script in Python. Fun stuff!
Haskell
loeb = fix (fmap . flip id =<<)
I have a really good new project will tell when its finished
>>34
Damn - that's exactly what I was thinking. I hope we're not scooping each other.
>>34,35
I'm going to have to sue you both for infringement of my IP rights.
I'm fucking fed up of Arch whimsically breaking my shit so I'm moving to GuixSD.
why not Debian or something rather than an OS that is in beta?
A given Linux distro has two variables that matter to me: init/services management and the package manager.
dmd is a novelty for the former, and guix's package manager has no apparent downsides. The fact it is beta is not a problem; the whole installation is defined by a single script so if something goes wrong I can just nuke it and start again. So it gets ten thumbs up out of ten.
Of the OSes I've used, Arch's package management is not the shittiest, and yet it is still too shitty; a while ago it also moved from sysvinit (functionally, a pile of scripts haphazardly cobbled together) to systemd, and now feels too much like a black box that I have to believe is doing what I think it just told me it was doing.
it seems strange to complain about breakages and then move to something that is currently in development. if you want stability without systemd (out of the box) plus solid package management then I would suggest Void Linux, heck even running Gentoo on stable isn't the worst idea.
>>40
Arch doesn't tell me it's not stable. Guix does. That's the difference. There's also no nice way of reverting to a known good setup if an arch upgrade breaks.
Funny thing is though, I can't install it over wifi (it complains about not having nonfree wireless drivers, and the router is all the way downstairs) and Void or Alpine were my next choices anyway... the packages aren't always up-to-date (or even existent) on either but I can still run them as a minimal base.
> There's also no nice way of reverting to a known good setup if an arch upgrade breaks.
dd if=/path/to/backup of=/dev/sda
>nice way
>>43
it takes literally 2 seconds to do it, and works perfectly every time. how is that not nice?
>>37
did you get GuixSD running successfully? What's your hardware? Installation broke for me and I couldn't be bothered figuring out how to fix it.
>>44
It requires a spare hard disk of at least equal size for every snapshot you want, and takes minutes on spinning rust. It's also not something you can version control or share to a different machine over a network without significant pain. The only way you could make it shittier is if you archived it by emailing it to yourself as "dissk backup (3) - Copy (2).zip".
>>45
I'm on wireless, and it refused to load iwl3945 because it's non-free. I'm still looking at Alpine and/or Void or FreeBSD but haven't given proper time to anything else yet.
>>45-47
Anyway, it ran OK as far as I can tell, but I'm just using guix standalone to replace dead pacman at the moment.
>>46
if you're that kind of person, sudo git init /
, and then realize what a shitty idea putting your entire hard drive in a version control system is.
>>49
You really don't get what Nix and Guix are for, do you?
>>49
By which I mean, when I say "something you can version control" I mean the single configuration file that describes the state of your entire system.
http://www.gnu.org/software/guix/manual/guix.html#Using-the-Configuration-System
>>50-51
tbh it looks like something people on /prog/ would masturbate over, and I don't see why I should care. I can back up and restore any *nix system with dd
, and have no need to add more moving parts that break as soon as you actually need to restore a backup.
>>52
That's great for you, and I'm sure your total lack of experience with nix and guix gives you license to shout your opinions on them as loudly as you want with the other over-opinionated folks on /prog/.
It's actually got fewer moving parts than most other distros, though. I'm curious, how does [code]dd[/code] fare when you want to set up the same system on a different machine with a smaller disk?
I tried installing GuixSD on an EEE PC netbook and it did a kernel panic every time.
After all this pain I am running Void on my netbook, and not really bothering with any backup/reproducibility plans.
new project
A wiki
an irc bot in ruby. It's almost done, but right now I'm tired of writing it. The first days were really fun but now the final feature it lacks kinda requires another rewrite of some major components.
Anyway the bot is supposed to be general purpose, easy to configure, and also easy to manage and enhance once it's running.
Then I want to write a packet capture program with batteries included. Something with slightly more features for interactive traffic analysis.
Other futures I might take some time in the future is an interactive debugger for ruby, an Interactive Fiction Z-machine compiler, a BBS engine... maybe a MUD engine.
I have a bunch of ideas.
I'm working on a roguelike. It's really tedious, but enjoyable. I kinda burned myself out on my last project because I didn't realize what a large undertaking it would be, but after some rest I'm comfortable with how long this might take. Tackling problems in small bites makes it pleasant, and stops me from feeling like I'm being crushed by how much there is or could be to add.
Right now I have maybe half of a barebones level generator written along with a placeholder UI. You can push an @ around the screen. After I'm done with levels, I'll get around to player/non-player-characters.
Writing a crash triage tool so I can fuzz at a larger scale.
Want to be able to have all my crashes end up in elasticsearch, so I can have pretty graphs of crashes by type. Writing my tool in python and using lldb's python API. Does most of what I need it to do, just need to get some more useful tests and set up how it gets called.
Was inspired by Ben Nagy's talk from Infiltrate 2015.
>>66
I'm using Racket Lisp. There's not really any need for a curses library if your language has a GUI library, unless you deliberately want to limit yourself to terminal-only play. It took me a little while to get used to basic OOP for frames and windows, but I don't need much except for displaying arbitrary characters/text, and that's very easy to do.
>>67
Racket's GUI stuff is the best I've ever used.
It's also got the standard ncurses bindings somewhere (or maybe not and I had to generate it for myself) or at least some ansi terminal library, if you ever wanted to go curses again. Have fun!
Meanwhile I'm the guy who tried to set up GuixSD. I'm running NixOS very happily now.
I've been laying groundwork and writing the necessary libraries to write a Game Boy Advance game in very-type-safe Haskell.
>>64
That's pretty cool. Sounds like you have some pretty beefy machines if you're at the stage of using elasticsearch and writing tools to help fuzz things. What kind of programs are you testing?
>>68
Yes, despite having never done any OOP or GUI work in my life I was able to get it up and running in about an hour. That's also due in part to the very nice documentation they have on their object/class-system and how the GUI system uses it.
I am writing a music program where the UI is an AKAI APC MINI and the instruments are the Korg volca beats/bass/keys.
I am using ChucK as the backend for IO and scheduling, via a protocol over OSC/UDP. Low-latency scheduling and input polling are very fiddly to get right, and ChucK does it perfectly.
#include <stdio.h>
void main( int argc, char *argv[] )
{
printf(" ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\n");
printf(" ( ´∀`) < "); puts(argv[1]);
printf(" / | \________\n");
printf(" / .|\n");
printf(" /\"⌒ ヽ |.イ |\n");
printf(" __ | .ノ || ||__\n");
printf(" ノく_つ ∪ ∪ \\n");
printf("__((_________\\n");
printf(" ̄ ̄ ̄ヽつ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | |\n");
printf(" _____________| |\n");
printf("  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |\n");
}
I've been so busy with classes that I haven't had any time for my project. It really sucks. I miss working on it, and I feel like my programming skills might atrophy if I don't use them.
>>74
Nah, all you lose is what the hell you were doing on that project more than a week ago.
Just playing with making a very dumb sorta-BBcode-to-HTML converter in flex, just for the hack of it.
I really want to sit down and give Perl 6 a spin but I simply don't have the time.
I'm >>72 and I originally started it in Haskell. I've since restarted the project in Guile because there's a bit too much boilerplate in Haskell to get what I want.
I've simplified all the code heavily (I'll figure out the SLOC difference later but it's got to be <5%), and made it so that the whole thing is a library rather than a program, and a "setup" (which instruments are plugged in where, what UI pieces you want to see, etc) is a simple program you write. You should be able to live-code the thing in the REPL if you want, too, because that's hot these days.
>>63
I swear I could have written this post, since I also started a roguelike after dumping my previous, over-scoped project.
I'm working in love2d, since I'm most familiar with scripting shit, and honestly, I'm really enjoying it. It's just free enough to not feel like I need to switch to a heavier-duty engine to get basic shit done, and the rotLove library for 437 display is flexible enough to be used full time, after you tweak it a bit.
I have been shaving yaks:
I am making a game in Pico-8, but it got to a certain size and the dynamicity of Lua meant I couldn't comfortably refactor it without scrapping it and starting again.
So in order to avoid that problem and to work in a language I am more comfortable with, I decided to write a typed DSL for Lua and a pico8 API on top of that, so I woudn't have t actually manually write any lua at all.
So, in order to do that, I taught myself Idris so I could use dependent types and because it's basically a more user-friendly Haskell.
Anyway I'm coming out of that valley and actually managing to write some proper code for the game using my DSL. It's pretty neat.
My latest success is a binding to an unpopular database in an unpopular language. Ah well.
I wrote a game and I discovered a totally fundamental bug in it that somehow I missed for months and probably will never be able to fix but its just for me so I guess I can keep the bug no worries..
>>84
Tell me about the bug!
captcha: jizz
I wrote an IRC "bot" in Powershell; it joins a pre-determined channel and waits until someone says "wallpaper [url]" where [url] is a URL with a wallpaper.
Work keeps me too busy to have much fun anymore. The most recent thing I wrote was a textboard software but now I have little to no motivation!
I'm learning Rust, it's pretty cool.
I'm making a roguelike in Scheme with ncurses. It is similar to GNU Robots where you actually program your character/robot instead of controlling it manually.
How is rust going. From what I've heard it is an updated C++.
>>90
It sort of is in that it can get as low-level as you want, and it feels like you're writing fast code like C++, but I've found myself comparing it to Haskell more often. The compiler is pretty strict about the type system and lifetimes. The error messages are very helpful though, so it's not often a problem.
I've found that if you get in a fight with the lifetime/borrow checker (which everyone seems to complain about), you can get around it one way or another by using one of the wrapper types like Rc or Box or RefCell, which might make the code run a bit slower but you at least get it to compile.
I think one of the best bits is that mutability is per-value, not per-type. So you can't say a particular field of a struct is readonly, but you can say "this function argument is readonly, this one is mutable" with any type you want.
Also there are lots of packages that people have written, which is nice, and I've not yet had to go into "unsafe" land to interop with some external C library.
Overall would recommend
I'm making a 2D RPG in Java. I will probably never finish it.
I'm writing a stack language interpreter
Wait, I made this thread. I'm still making that language. It's gone through maybe 2 or 3 restarts since, though.
I'm automating my work flow for this shitty program I have to use for work. I'm a lazy fuck!
>>97
You are coding a spambot? Fascinating! May I see the source code?
>>89 Sounds nice. How's it been going for you so far? Got any links?
>>94
Still going. Currently aiming to write a Lua REPL in it. You write code in this language in the REPL, and whenever you evaluate something, it compiles everything it needs to Lua, writes it out to a temp file, and runs it in lua or luajit or something. That's the plan, anyway.
Trying to write a gopher browser with ncurses and shit
>>102
let me guess, in go?
>>101
Update: it's going well
It's a pretty fully-functional language at this point; by default it is interpreted but you give a command-line flag to the interpreter and it outputs the Lua equivalent instead.
So far I've got if
and while
compiling and I'm halfway through define
.
New current short-ish-term goal is to write a pico-8 library so you can make games in it.
I'm going to release version 0.0 soon
>>104 oh yeah I released this on Monday
https://gitlab.com/worst-lang/worst
This is my personal project with a few other guys. We browse the chans of the web and this one is pretty interesting. :^) enjoy! https://soda.privatevoid.net/
I'm working on upgrading tanami.org/overscript/ with a modern interface, it's going to be moved to overscript.net