Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

Tell me about your projects!

Name: Anonymous 2013-12-01 9:36

I'm pretty curious: do you /prog/riders expend your free time doing some personal projects?
In what kind of things you are working?

tell me everything

Name: Anonymous 2013-12-01 15:10

I'm working on two ncurses online multiplayer games.

I once read on the Internet telling others about your half-completed projects only hurts your productivity because just the fact of doing so makes you feel accomplished and that's why I won't say what my projects are.

Maybe when they're playable I'll post in this thread.

Name: Anonymous 2013-12-01 15:26

>>2
I once read on the internet that telling others about your half-completed projects motivates you into completing them because you've made others expect results.

I think I see the problem here, we should just be working on our projects instead of reading things on the internet.

Name: Anonymous 2013-12-01 17:32

>>3
The article I read explicitly ``debunked'' that same statement. Instead of making others expect results, you're just deluding yourself into thinking you've made resul-

we should just be working on our projects instead of reading things on the internet.
shit

Name: Anonymous 2013-12-01 18:10

What is this `free time' you keep talking about?

Name: Anonymous 2013-12-01 23:32

In what kind of things you are working?

a wannabe c compiler, it can do structs and pointers and recursion and shit.

>>5
What is this `free time' you keep talking about?

and i thought this was the land of NEETs

Name: >>6 2013-12-01 23:40

oh and last month my project was writing a piece of shit to browses and search the /prog/ archive

Name: Anonymous 2013-12-01 23:41

>>6
This is definitely not the land of NEETs. I'd say most people here are employed, or in University, or something of the sort.

Name: Anonymous 2013-12-01 23:47

>>8
/prog/
not the land of NEETs
My whole life is a lie.

Name: Anonymous 2013-12-02 1:10

>>9
Excuse me kind sir. May I ask you who the fuck are you paraphrasing?

Name: Anonymous 2013-12-02 1:34

>>10
The Doctor. Just the Doctor.

Name: Anonymous 2013-12-02 17:38

According to my GitHub graph I haven't really done anything since March. Depression is a bitch.

Name: Anonymous 2013-12-02 22:39

A chat server/client that shall work in a pseudo-decentralized way by sending the current server IP via mail. We will use it as an alternative to Skype.

Name: Anonymous 2013-12-03 2:48

>>13
I hope you are joking.

Name: Anonymous 2013-12-05 8:47

1. A client/server for sending and receiving delta updates to a shared blob of data with a group of peers where each knows the address of the other, optionally as hidden services.

2. A database that stores these updates and sends new updates to the other peers. It would probably keep a revision number or something. I'm not sure how race conditions should be resolved. I guess all updates can just have a time stamp associated with it and they can be sorted out that way across all the peers.

3. A webserver that displays the current state of the database in an intuitive manner. A web interface may also allow users to push changes to the database associated with the webserver, which may then push changes to the other peers.

I think a product that provides features 1 - 3 would be useful for a lot of things. We need to move more services into a distributed model. There has to be a translation from the centralized server to this network of happy pseudo anonymous peers.

4. A database and web interface to a bbs tied into the structure above.

5. A necessary but orthogonal feature would be spam control on the web interfaces as well as handling of impolite peers.

With some free time that will be coming up. I'll go for a sprint of the above. I'll try to keep it generic and reusable so it may be used for sites other than a bbs... It'll be really basic and easy to spam at first, but I'll host it anyways...when I can...

Name: Anonymous 2013-12-05 13:15

>>15
Sounds like you want HTSQL. And if you replace "centralized server" and "peers where each knows the address of the other" to "decentralized network" and "peers that use a datastore, and multicast these streams," it would feel a lot like the gnunet project. Oh well, I hope it works out for you.

Name: Anonymous 2013-12-05 14:24

>>16
HTSQL looks nice. It might open DDOS attacks though if peers can repeatedly run expensive queries. The protocol will probably stay restricted to delta updates for the peer communication, and page requests to the web interface.

Yeah, I read the slides on gnunet that were linked here I think. I'll keep this stuff simple though. It'll just assume each peer has a table of addresses of the other peers (which may change dynamically, and peers may come on and off line), and these addresses may be ip addresses or something else like a tor hidden service. Communication among pears is done by TCP for compatibility with tor, and probably anonymity networks in general.

What constitutes a delta update would become application specific. A new post or a new thread on the bbs is published. Friend A uploaded a new photo. Etc. Both binary and textual data should be supported, and compression could be nice. Although unpacking opens up more DDOS attacks, zip bombs, etc. Distbb only needs text, so that is easier.

I'll focus on the functionality first, and worry about plugging holes for spam and abuse later. Maybe spam prevention and malicious peer detection can be implemented at a more generic level than the bbs.

Name: Anonymous 2013-12-05 15:02

>>17
It might open DDOS attacks though if peers can repeatedly run expensive queries
Um, you configure the database however you want. So you can use PostgreSQL to keep the data, and configure with timeouts. HTSQL is mostly about an interface using HTTP almost directly to a database, with it's own query language. A well designed one at that. Heck, if you want to secure queries from spam, have the user log in at every transaction, then log out. Only whitelisted peers can make extended queries.

restricted to delta updates
That's fine. Just be sure to know that delta updates on a datastore have infinitely increasing size.

Both binary and textual data should be supported,
Just use binary, with a header describing the type of transmission, size, and checksum. If you must encrypt, do it Encrypt and MAC. Mime is the simple way out, but there are more schemas as well you can use.

I'll focus on the functionality first,
kk, I look forward to it.

Name: Anonymous 2013-12-05 22:18

>>18
I guess HTSQL offers the most flexibility. The way I had anticipated it was that all peers would sync all data indiscriminately. But the user might not be interested in all information, and if the amount of information is large, the clients should be able to make more specific queries to single out the data that's valuable to the user. So, there could be two possible solutions. One is to just provide HTSQL, and let the application define the database schemas and keep access secure. Another is to create a half-baked poorly implemented reinvention of HTSQL, which may or may not be better than HTSQL. A limited subset of HTSQL could be supported for security, keeping out expensive queries, or for simplifying the required database backend.

Name: >>19 2013-12-05 22:57

Ehhh, I think HTSQL is too generic. What if a peer wanted to delete a submission it had made? It could use a HTSQL command to delete the entry from another peer(s). But how is this deletion propagated to other peers that the original contributor doesn't know about at that moment? They'll still have the record intended for deletion and be out of sync with the other peers. Instead the record should be marked as revoked by it's author, and polite peers should remove the record from their local storage while keeping a key for the record with a deletion tag. So other peers that sync at a later time can discover the deletion event and decide how to handle it then, and peers that search for that specific record key may see a message that it was deleted by its author.

HTSQL is perfect for making read only queries though. I want to make the mutator requests safer, but without restricting it too much. Ideally the application wouldn't need to worry about the details of keeping things in sync. This should be taken care of by the thing and the application would just make potentially detailed reading queries, pushing binary blob items with meta information out to the other peers, and maybe making requests to the network at large, like please delete this naked picture I uploaded while drunk, and maybe other misc requests like that.

Name: Anonymous 2013-12-05 23:07

>>19
I am not so sure I get you. Just sounding off with an interface you could use. If it is for distbb, I have no idea. I haven't taken a look the spec yet. Re-reading it, makes me confused:
https://ivasiwlrjq5dxk6b.onion/p/distbb/artifact/37a366acc2f9309d87103374f9c48ba0f2c08e02

It needs an about page.

I would do it the GNUnet way, datastore the DHT DNS system (GADS) for naming/assigning peers, and use your p2p protocol of choice to talk to the peers. GNUnet adopted the secushare project, so that PSYC is used for the multicast protocol. At every interval the PSYC module sends junk out in multicast as both a way to confuse attackers, and say I am alive to the DHT, even if the user is on IDLE.

I would have personally cheated and just use IRC or HTTP, but hey, they only want PSYC to semantically "update" an older client with the new protocol scheme, so that the client may behave as the newer & updated version.

Name: >>21 2013-12-05 23:22

>>20
I am not >>19, or >>15.
But how is this deletion propagated to other peers
If they are using multicast, a peer can update all peers of the update. If centralized, the server can issue an update/delta. Both might issue a statement like this:
diff DELETE FROM thread_progrider.distbb_talk WHERE post_id = '2,3-6'

HTSQL is perfect for making read only queries though.
Erm, no:
http://htsql.org/doc/admin/usage.html
delete(feed)
Deletes records from a table.

And sorry, it was just a suggestion. The current implementation uses python, and they are looking for someone to rebuild it into C, or anything faster.

Name: Anonymous 2013-12-06 0:07

>>21
I'm just measuring the benefits and draw backs of using something like HTSQL to just proxy sql commands over a network, or providing a more special purpose protocol that could be safer for keeping synchronization but also more restrictive and reinvented. The concept of executing SQL remotely gives the most flexibility, but may push too many synchronization details into the application. But maybe these are necessary. I was hoping to abstract that sort of stuff so the applications would be easier to write.

For the anonymity stuff I'm just relying on Tor for now. Since tor can act pretty transparently, I'm not putting any details like that into it and just assuming some kind of ip address or domain name is resolved and a TCP connection is created.

Also I have distbb in mind for the first application of this, but I want to generalize it other sorts of websites that are 2.0 and typically centralized.

>>22
Yeah, a rouge client could probably mess stuff up. The read only SQL commands would be good though. If the client wants some specific information about a peer's database, if the protocol can't specify a way to get it, the client will get the information by retrieving more information than necessary, which will put more load on network.

Name: Anonymous 2013-12-06 3:11

>>23
I was hoping to abstract that sort of stuff so the applications would be easier to write.
What are procedure⸮

Also, can you clarify the purpose? You are confusing me even more.

What you told to >>22 confused it even more. Elaborate please.

Name: Anonymous 2013-12-06 6:47

>>24
I am sorry. I often speak from my own context without establishing it. Uhmmm, so most of web 2.0 involves presenting information to users in a structured way that is easy to navigate. Users are capable of submitting various kinds of content to the site. But the site is always centralized. So I would like to make a framework of some sort, that would take care of the p2p stuff for such a distributed site. I am taking a lot of inspiration from the gnunet slides. Particularly where that one guy listed the tradoffs of a distributed service, and that his area of research is to make distributed software easier. So I'd like to make a general purpose framework that would be used to run a typical web 2.0 site.

There are two components, the framework, and the application.

Duties of the framework:
* manage the dht of peers that act as hosts for the service
** peers may go offline and their addresses may change.

* maintain a database of content items. From the point of view of the framework, a content item is a binary blob with a set of key values pairs that describe meta data associated to the blob. The framework may also store its own meta information in content items, in particular the time stamp of when the content item was imported into the peer's local database, and possibly the peer it was synced from. Each meta data field may be used as an index for search.

* sync new content items from the other known peers. Content may be filtered using meta data tags when it is synced. For example, if the peers maintained a bbs, the application may request the framework to sync only the threads from /prog/ and /lounge/, while ignoring unsynced threads from /newpol/. The framework will store the fetched content items and alert the application to their presence. The framework maintains steady communication with the other peers and awaits new content.

* Accept new content from the application. The application may be a local browser run directly by the user. The application could also be a http server, that presents users with a web interface to browse the local database of content. Users of the web application may submit data to the http server, which then wraps the data as an appropriate content item with meta data and passes it on to the framework, whom then handles propagation across the peers.

* Maintain a change log, which is a log of all changes to content sorted by time stamp. Other peers may request to sync all changes between a specified revision or time range. Other peers may request to only sync content within a time interval that has meta information matching a given set of filters.

* Cull content that is requested to be deleted by the original author of the content. Identity of the author would be authenticated somehow, perhaps by a cryptographic method. When content is submitted, the author could generate a random string, and a hash of it and attach the hash as meta information, DELETE_HASH. Then when the delete request is submitted to a peer, the delete request contains the original string generated by the author. The peer verifies the string matches the hash, deletes the content from local storage (if the framework is polite), alerts the application to the deleted content, and echos the delete request to the other peers if necessary. The delete request will also appear in the change log. The key of the deleted content item may be retained to give an appropriate error message if the application or a peer requests the deleted content item. Delete requests may also be received from the application.

* Meta data modification. Peers or the application may modify meta data values or add new key value pairs to existing content items. These changes are to be propagated to other peers.

* A moderation system. Moderators with identities may flag content items, contributing values to a moderation tag. Each content item contains a list of moderator designations, which contain a rating, categorization, comment, identity of the moderator and signature of the moderator.

* Remove only from local storage. If requested by the application or a local configuration utility, the framework may remove certain content items from local storage, but not indicate their deletion on the network. If the content is needed in the future, it can hopefully be fetched from a peer that still stores the content item. If all peers remove the same content item from local storage during the same time, the content is lost.

* accept peer configuration from the application or configuration utility. The moderation system may be extended to peers to identify malicious peers. Hopefully a white list of polite peers may be gathered and become large enough to ensure stable access to content items.

* When syncing, complicated queries may be provided for reading content filtered by meta data tags from other peers. When pushing content content items to the other peers, simply the presence of the new content item is communicated. Write access to peers is limited to introduction of new content items and delete requests (which may only be done by the original author).

* support meta data marking of content items that specify white and black lists for peers that are allowed to receive the content item.

Ok and now the roles of the application and how it may interact with the framework. A typical application would be a local browser or a http server.

* The application will treat the framework as a distributed database. Complex read-only queries may be executed, searching for content items based upon meta data tags. Searches may be performed locally and on peers (suitable for devices with the capability to run the framework and an application, but lack the storage to keep a local copy of the content items). In the typical example of a http server, the application may listen for GET requests, parse the uri, look up the relevant content items from the framework using either local or a peer's storage, and then assemble the fetched content items into a web page for the internet user.

* The application will create new content items with meta data and hand them to the framework. The framework will manage propagation of the content items.

* The application may perform a delete request on the framework. The framework shall then verify the delete request, perform the deletion locally, and propagate the delete request to the other peers.

* The application may write changes to the local storage managed by the framework. The framework will maintain a change list of affected content items.

Name: Anonymous 2013-12-16 3:00

Are there any programs for helping manage a web of trust? Like people could maintain a collection of public keys. Keys exchanged in person could be manually added with a trust level. And then friends that have already exchanged keys can send signed keys to one another automatically. When a signed key is received, it can be labeled with an origin, so if the key is found to be false, the act of the origin can be reported to the network. It should be user friendly enough so someone who barely knows what encryption and keys are could use it.

Name: Anonymous 2013-12-16 4:39

Name: Anonymous 2013-12-16 4:55

>>27
I thought something like that would exist. That's one less thing I have to do.

Name: Anonymous 2013-12-16 4:58

>>28
distributed wot is a nice thing, but we still need that ``killer app'' so more people starts using it

Name: Anonymous 2013-12-16 5:18

>>29
It looks like it's written in ocaml which is too bad. And it depends on Berkeley db, which seems waaaay overkill. The application is trivial enough. Why did they make it so hard to deploy to anything outside of a linux box?

Name: Anonymous 2013-12-20 11:39

I think I'm going to call the peer hosting software, Shared Hosting Interface Technology. I'm looking for an easy binary protocol that represents data equivalent to sexps. I couldn't find one during the brief search that I did, do I'm making one now, Binary Sexpressions. I decided to go with C. It'll be fast, portable enough with macro duct tape, sockets will be flexible, and hopefully it'll be small enough to verify correctness and safety. Wish me luck /prok/.

Name: Anonymous 2013-12-20 11:44

I can only dream that one day, distbb or maybe other such things, will be powered by SHIT, using the BS protocol.

Name: Anonymous 2013-12-21 14:58

>>31-32
Eagerly waiting.

Name: >>31-32 2013-12-24 9:34

The binary s expression library is starting to look like what one anon was hinting at when describing a higher order function library for file io. Except I'm using higher order functions in C. It's kind of interesting but more messy than interesting. Which is a better name, BS or BiSexpressions

Name: Anonymous 2013-12-30 10:03

The bottom layer of the protocol is mostly complete. You can send/receive uint8, uint16, uint32, uint64, sequences, and binary blobs. I'll be adding some more utility functions for reading short blobs into memory buffers, adding type tags, and so on. Trigger warning, it's kind of shitty.



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

Name: anonymous 2013-12-30 11:12

Wow, the old 4chanprog.git repo still works. And I can commit using tor.

http://repo.or.cz/w/4chanprog.git/shortlog/refs/heads/mob

about using the mob branch: http://repo.or.cz/h/mob.html

This should do it...

torsocks git clone git://repo.or.cz/4chanprog.git 4chanprog
cd 4chanprog
torsocks git checkout mob
torsocks git remote set-url --push origin ssh://mob@repo.or.cz/srv/git/4chanprog.git


Then

torsocks git push
torsocks git pull

seem to work ok.

I submitted the bisexp project there for now. You are welcome to contribute/ravage/vandalize it as you wish.

Name: Anonymous 2013-12-30 13:47

>>35
キタ━━━(゜∀゜)━━━!!!!!, (゜∀゜)━━!!

Name: Anonymous 2014-02-15 6:53

>>36
updated

Name: Anonymous 2014-02-16 17:43

Name: Anonymous 2014-02-20 17:23

>>39
DON'T SAGE IF YOU HAVE SOMETHING TO CONTRIBUTE (but do sage if you don't). I wouldn't have found this thread if I hadn't scrolled down in a whim.

It is kawaii.

Name: Anonymous 2014-02-23 0:40

>>40
ok

Now it has some integration with openssl. It might have a bug with partial reads and writes, but I'm too lazy to fix it right now.

Name: Anonymous 2014-03-12 13:26

>>1
i am making a game engine using an entity-component system. It is a very interesting concept and probably better than OOP at making complex simulation programs.
It also makes it very easy to implement a "data-driven" design which gives significant performance improvement. Unfortunatly, I am implementing it in a shit prog lang which cannot store objects/struct by value in an array.

Name: Anonymous 2014-03-12 14:44

Where's Touhou roguelike in Lisp-san?

Name: Anonymous 2014-04-18 0:57

On average, how many lines of code do you make on your personal programming projects per day?

Name: Anonymous 2014-04-18 5:24

>>44
400 per week.

Name: Anonymous 2014-04-18 11:02

>>44
OVER 9000 XD

Name: Anonymous 2014-04-18 11:10

>>46
What? :DDD 9000? :DDD xDDDDDDDDDDDDDDDDD

Name: Anonymous 2016-05-12 5:44

Check em

Name: Anonymous 2016-05-12 21:43

>>48
Check my anus

Name: Anonymous 2016-05-12 22:41

>>48
ouch, looks like you've got duds!

>>1
Working on a scheme compiler, guided by the firm yet gentle vision of sussmans anus

Name: Anonymous 2016-05-12 23:14

Working on an alternative to the massively outdated von-Neumann and Harvard architectures.

wise men call me a genious

stupid and evil men call me crazy

Name: Anonymous 2016-05-13 1:34

full scheme webappin stack (chicken back, biwa front) with sexps over http, for an appin appventure with potential for appitization and monetizapping

a not very serious unity3d project that i might rewrite some of in F# because both of those things are qt as fuck

a personalized tool for live music improvisation and light control/visualizations meant to run at the os-level to maximize hw u$age (i'm a lesbian hymie black-and-proud rapper/performance artist who identifies as a middle manager, my rhymes are tite fam, my code is dope as shit, my ass is YHBT )

Name: Anonymous 2016-05-13 2:09

I'm writing Android apps and hoping I get rich enough to never have to program for someone else again.

Name: Anonymous 2016-05-13 2:17

HAX MY ANUS
>>55
sweet dubs /b/ro

Name: Anonymous 2016-05-13 7:15

it's nice that you checkd'em before I got them

Name: Mentalfuxxed 2016-05-13 21:51

>>51
Wise men call me crazy.
Stupid and evil men call me a genius.

Don't change these.
Name: Email:
Entire Thread Thread List