been working on & off on this & in the interests of "building in public" may start sharing details as I go here, feel free to mute this thread if ur not interested in the boring technical stuff
this project started from a problem i have constantly; finding the best reaction meme
---
RT @pee_zombie
@vgr building a meme (funny picture) cataloging system with hierarchical taxonomy, support for crowdsourced classification, for the purpose …
https://twitter.com/pee_zombie/status/1440420947048108035
i figured my "process" had quite a few inefficiencies, and that i already mentally sort memes into various non-exclusive overlapping categories; i'd also put some thought into how these categories can be abstracted and recombined to model the meme space
---
RT @pee_zombie
@deepfates @vgr tldr by examining the components of many memes we can extract common elements, find useful abstractions around them, fit them into a taxonomic structu…
https://twitter.com/pee_zombie/status/1440432195009597446
once we have basic requirements, we proceed to design a minimally-viable architecture that will allow us to implement the capabilities we want with minimal hassle; in this stage it is critical to fight the urge to over-engineer. i had to roll back several too-ambitious plans here
anyway so after a bit of work i have a basic prototype for uploading memes working; i'm able to create, read & delete them thru a RESTful API
contrary to the QT currently working entirely locally, using in-memory DBs for each component, H2 and s3mock
---
RT @pee_zombie
@deepfates tldr I'm using a postgres RDS instance for metadata and S3 for object storage, with a simple java app serving an api for uploading and tagging memes
https://twitter.com/pee_zombie/status/1442535557054308354
still got tons more to do b4 this can even be called a prototype; none of the tagging capability is built yet! i'll be updating this thread as I add more stuff, feel free to ask questions if you're so inclined
& if you wanna follow along here's the repo
fair warning there is exactly 0 documentation; however this is a pretty standard spring boot app so if you've seen one of those you should be able to find ur way around
here's something i did just now, implemented deleting media; small but important
https://github.com/pee-zombie/memetiq/commit/4179c159d30f1130446c54114f764efb746679be
quick note on this bit; as i dont want to set up/manage a real postgres db for development, nor do i want to pay AWS for storage just yet, embedded DBs are super handy, and with clever mocking of provider interfaces you can get away w/ swapping things out
---
RT @pee_zombie
anyway so after a bit of work i have a basic prototype for uploading memes working; i'm able to create, read & delete them thru a RESTful API
contrary to the QT cu…
https://twitter.com/pee_zombie/status/1448502426902962179
H2 is a java in-memory RDBMS which runs right in your application
s3mock hosts an s3-compatible object storage server also right in your app
you can see here how i'm swapping out the ObjectStorageProvider implementation depending on the app configuration
as no battle plan survives contact with the enemy, i quickly switched back to java instead of scala, minimizing amount of new things i'd have to do at once. part of me always feels lame for not doing something cool & new with each dimension of a project but that way lies insanity