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/.
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.
I was thinking of some file types that afaik don't exist.
One is filesystem entries of files stored in memory from disk files, updated when the disk file modification time changes. This would be a big disk-access optimization in some cases.
The in-memory entry permissions would be ignored, and writing to it would write to the disk file.
Another one is dynamic files that (only) have the name of a executable, which when opened would be executed by the kernel, creating a process child of init with its standard output piped to the file descriptor obtained by opening the dynamic file.
Here reading would depend on both the dynamic file's read permission and the named executable's execute permission. The idea is that it's transparent to the reading process.
Whether they could change the file to which they point to without deleting it would depend on the implementation, I think. (https://en.wikipedia.org/wiki/Symbolic_link#Variable_symbolic_links)
The first type is called mmap, and caching like that is done automatically by the kernel.
The second type, if I understand correctly, is a script glued to a fifo.
Oh yeah kernel caching.
>The second type, if I understand correctly, is a script glued to a fifo.
That's rather rudimenary. For that you could just serve virtual files. My idea was that the writer and reader programs didn't have to know about this, but, now that I think about it, that just reading might execute something is probably too wild.
Oh, I see. So opening the file would implicitly start its target program, and read/write operations on the file would redirect to stdi/o. How would you change the target program?
Perl uses this idea - opening a subprocess is identical to opening a file, but the filename begins with a pipe.
>How would you change the target program?
Similar to changing other files, probably.
>Perl uses this idea - opening a subprocess is identical to opening a file, but the filename begins with a pipe.
Kinda like the POSIX popen interface, yeah. But having to use special interfaces or languages falls short of transparency.
OS development is a major undertaking, it's not the sort of thing you can do in a weekend, especially considering it requires low-level programming techniques that are avoided in modern application development. The appeal of things like Linux and BSD is that the hard work is already done for you, but unlike Windows or Apple operating systems you have the freedom to modify the user interface (which is all most people really care about, messing around "under the hood" is really only called for when working with embedded systems or mainframes, where you need to get every last bit of performance out of the machine - and only low level programming specialists really have the ability to effectively optimize in those areas, anyway). And the UNIX architecture, although rather old, wasn't really made for "mainframes", one of its main advantages at the time was that it could run on lower-end systems.
All sort of things require low-level programming.
I think I understand your idea.
How about a daemon that handles that stuff? You give the daemon the name of a script and of a fifo. Your daemon calls inotify on the fifo and waits. When one of the registered fifos is open, the daemon triggers the script with it's output descriptor directed to the fifo.
Shiichan sucks and is written in PHP. Kareha sucks, is written in Perl (which causes more issues than anything else ever could when trying hard to do so) and doesn't scale well at all, seeing how a board of just the size of 4-ch needs to use archiving scripts in order to keep things running smoothly.
Is there any sane BBS software out there or do I have to try and do it myself, despite not being too much of a coder?
All textboard software sucks. Kareha just sucks less, and Shiichan could also suck less if VacBob actually bothered to clean it up, but I guess not.
Become a coder and code one in Python.
I don't understand why people will use the language that an application is written in as a reason for it being bad. If it is a tool that performs within your requirements and has the features that you need, who cares what its written in?
PHP is just ugly. And Shiichan has undocumented features, BBCode, very serious comments all over the place, horrible logic. Take a look at it and barf.
CGI/Perl is just notorious for causing issues. Especially kareha insisting on having the index.html in the same location as kareha.pl. The moderation could also maybe need some better ACL. I know, trust your moderators and stuff, but it doesn't feel right.
We are sick of language discrimination, more so the PHP/Java bashers. There will be little tolerance of blatant and repetitive insults. You are still welcome to bring forward a sensible, insult-free argument regarding a certain topic at the appropriate time and place for it.
Is there one based on Ruby? If not, I would be willing to help develop one. It would be a good way to beef up my Ruby skills...
My point was that the language of a tool is not reason for it to be considered bad. Your reasons against shiichan are due to poor coding practices, not simply because it was written in PHP. You could find a poorly coded application in any language, but that in itself is not a reason to dislike that language. You shouldn't dislike well written applications simply because of the language that they were written in either.
Personally, I don't like PHP and no longer use it for new projects. Is that going to stop me from using a PHP application if it is the "best" tool for the job? No.
AOMEI Backupper is the simplest FREE backup software with system/disk/partition/file backups and system/disk clone. http://www.backup-utility.com
Have you considered <del>converting to Scientology and discovering what Lord Xenu wants for you</del> I mean Re-writing it in Rails?
I want to be a professional programmer because I'm under the impression programmers don't have to speak that much. The only programming language I know is Java because I took a few classes. I liked learning Java, and it came easy to me, but even though I want programming to be my job, I don't want to learn any more-- I prefer drawing manga pictures (which I'm bad at). What should I do?
remove your ribs and try to get your own penis into your mouth :)
speaking is fun nigga
yo will need to remove some spine and muscle too
or soak them in vinegar to make them more flexible
or just do yoga goddamn
Get better at drawing manga and hope for the best. Programming as a job involves working in teams and lots of communication.
Along with this question on motivation, how can you motivate yourself to program for multiple hours straight?
have a grand plan in your head, when you get bored take a look at the bigger picture and think about what to do next, your interest in the subject will grow
Yeah, I agree with >>5. If you are going to get programming as your job, you will communicate alot. As you need to explain your code to your team, and explaining the functions of your program to your client/boss.
As for >>6, I'm motivated to program for multiple hours when I know that I am getting progress at coding the program.
Give yourself a sequence of small, defined goals that you know you can easily achieve and that follow on from each other. I'm talking less than half an hour for each thing; you want to be able to know you can do it soon, but don't bother planning any smaller than that - tedium isn't fun.
Make sure that you can tell whether the thing works once you've done it for the sense of achievement, and the "Cool, now I've got that working, I can do this!" that follows.
Do this plan for a couple of different areas of your project so you have more to work on if you get stuck.
Optional: drink coffee and booze alternately. YMMV.
What's your favorite IDE/text editor when it comes to programming? Also, what's the setup in the banner up top? http://static.4-ch.net/images/boardtitles/programming.gif, that is.
Emacs is love; Emacs is life.
Been using textadept lately. Like it a lot.
I just started mg a few weeks ago after getting fed up once too often with emacs. It's certainly the best lite emacs out there. I wish it had:
- better support for unicode
- better documentation for binding things. Sometimes you have to put a \, sometimes a ^, and the examples are completely unhelpful.
I'd probably switch full time if it had syntax highlighting (yes, I'm weak) and if I had a good stand-alone LaTeX reformatter.
> syntax highlighting (yes, I'm weak)
Weak? Code isn't prose.
I tried Spacemacs after using Vim for years, and have now settled on neovim.
tbh, php is shit. java is pretty dank though
Is it sentient?
Yes [spoiler]no[/spoiler] [spoiler]maybe [/spoiler][spoiler]so[/spoiler]