I've not put a ton of thought into a plan to open source it, but we've got comments from friends who also have a lot of genealogical info that it would be super helpful for their info, so maybe? It's basically just a CRUD Django app at it's core, so I don't know how interesting it would be.
HN user
winsbe01
My family has historically been very into genealogy research, so we've got lots of family tree info. I've been working with my aunt to put together a webapp to create/edit info, see relationships, show ancestors/descendants of individuals. We've also started adding photos recently, which is really cool.
Favorite feature we've built: "are you my cousin", where you choose 2 people in our database and it calculates how they are related. First time I got to write a search function outside of a classroom!
I'm sure Ancestry does all this and more, but it's nice to have something that we built that's just for our family. We also use it all the time to verify relationships/birthdays!
"Vexing" feels like the wrong adjective here. IMO, terrorism is not a "harumph" situation.
Apps like QRBot [1] have the ability to scan ISBNs (and barcodes generally), and have a "history" feature that keeps track of what you've scanned and lets you export (to CSV, among others). The app is free on both iPhone and Android (there is a paid version, don't know what extras it has or if it's just ad-free), but may want to verify how much history gets stored before you go scan-crazy.
From a US perspective (may apply elsewhere), for books published relatively recently (within the last ~20 years or so), the ISBN is often part of the barcode on the back of the book (ISBN-13s (the updated standard) start with 978, so this is a good clue that the barcode is an ISBN). For a period of time prior to that (and perhaps still applicable to Mass Market Paperbacks), there is a barcode on the back that is NOT an ISBN, but there is an ISBN barcode on the inside front cover. I've not discovered any systematic way to pull an ISBN out of a non-ISBN barcode (though I haven't dug too far -- my collection hasn't reached 4 digits yet and I've been happy to type when scanning wasn't an option).
Once you have the ISBNs, I like to query against the Open Library API [2], which is a part of the Internet Archive. The information in there is fairly robust, if inconsistent (the capitalization of titles is sometimes as printed on the title page, sometimes Library of Congress format, other minor things). They have a lot of data points available, such as cross-referenced IDs with Goodreads and LibraryThing, but again, this is community-supported data, so YMMV as to completeness or accuracy.
Another note -- many books have separate ISBNs for hardcover editions, trade paperback editions, mass market editions, eBooks, etc (and sometimes don't have an ISBN at all for things like Book of the Month Club editions). I don't know if this is a requirement, or a luxury that big publishers have, but it is something I've noticed (you'll sometimes see multiple ISBNs listed on the copyright page, along with their formats -- also you may see related editions on Indiebound [3], along with their ISBNs). A cursory glance at Open Library doesn't seem to have a data point distinction for this (which is unfortunate), so you may still have to note this, but theoretically it may be possible to get this information from the ISBN directly at some point.
Source for ^^: I read a lot, have a lot of books, briefly ran a (failed) specialized online bookstore, and wrote a CLI tool [4] for myself to solve this very issue.
[1] https://qrbot.net/locale/en/ [2]: https://openlibrary.org/dev/docs/api/books [3]: https://www.indiebound.org/ [4]: https://github.com/winsbe01/booki
I build a cli music player that can handle both local mp3s and Spotify tracks in the same playlist, because I wanted that. I also recently built a tool to help me keep track of my books (what I own, what I want to read, what I've borrowed, etc).
Very interesting. Which client has the book review feature?
I haven't yet dipped my toes into Secure Scuttlebutt -- I joined a Mastodon instance once upon a time, but it didn't hold my attention too well. I've always associated Secure Scuttlebutt with a similar (albeit more distributed) micro-blogging thing, but that's probably my own ignorance speaking (nothing in the protocol seems to limit interactions to this, based on a quick skim).
Nothing against micro-blogging in particular, I just personally find the signal-to-noise ratio suboptimal (though maybe I'm just on the wrong networks, following the wrong people!). I'd love to build something into my book-tracking app so I could, like, share a list of books I have on my shelf that I would be willing to lend to people, or a list of books I'm interesting in reading that I could borrow from people, or books for trade, or just reviews (I've been doing a bit of pipe dreaming lately). I'm gonna dig a bit more into the Secure Scuttlebutt and ActivityPub protocols to see if this is something that could feasibly be done.
Great read! I also hadn't heard of TheStoryGraph before, so double points.
I'm also very interested in owning my own data (particularly when it comes to things like book lists) and I'm thinking about how to incorporate something like ActivityPub into my CLI book-list application. I'd love to live in a world with an indieweb version of g*dreads.
i wouldn't say it's as low as country living, but it's not quite 2k/mo for a 1 bedroom
i mean, it was purposefully acquiring money that didn't exactly belong to me. the Right Thing To Do would have been to report the error and get it corrected, instead of leaving it open for exploit, like when my friends or I needed quarters for laundry.
vending machine hacks, although both illegal and immoral, provide an immense source of joy in knowing that you _beat the system_, regardless of what treat may come out.
here's my biggest vending machine hack: freshman year in college, there was a vending machine in our dorm building. it wasn't cheap (obviously), but it got lots of use because it had something extra: a card reader for our IDs. if we pre-loaded our card with money, we could use it to buy sodas, snacks, and washer/dryer cycles. very convenient.
but the vending machine had a quirk: occasionally, for reasons unknown, it would just start spitting out coins. it was a pretty rare occurance (and a very exciting one) that it became known colloquially as "hitting the jackpot". every time we went to the machine, we would cross our fingers, hoping to "win".
while it seemed like a random occurance at first, i knew it couldn't be completely random, and i wanted to figure out _why_ it was happening. so i began investigating. whenever i went to the machine, i would try different combinations of buttons, choosing different rows/columns, but i couldn't recreate the behavior. accompanying my friends to the machine, i paid attention to how they were inputting their order (and if they subsequently "won") to try and figure it out.
after lots of observation, i found a pattern: everyone who ever won used their card to buy something. focusing on the card reader, i also found that these people had accidentally put their card in _incorrectly _ before righting it. with a theory loosely in place, i put some money on my card and gave it a whirl.
and it worked! here's the behavior: if you put your card in incorrectly, the machine couldn't read it because the stripe was on the wrong side, so it spit the card back out and flashed an error on the screen which would clear after a few seconds. while the error was showing, the machine would not accept your card. however, if you put your card in _immediately_ after the error cleared, here's what happened:
1. screen displays the amount of money on your card
2. choose your drink
3. drink is vended while the same amount of money is displayed (i.e. not subtracting the price of the drink.
4. the machine begins spitting out coins in the amount of your card value minus the price of the drink
5. the card is returned with the _original balance_ still intact
so, if i had $20 on my card, and i bought a powerade that costs $1.50, i would walk away from the machine with a powerade, $20 still on my card, and $18.50 in change.
horribly immoral and illegal? absolutely. however, i still feel immensely proud that i not only figured out what was happening, but how to reproduce it.
i am very much like you :)
"learning" something, i'm finding, is very hard to do outside of a school setting, so i've been trying to think of why that is. what i've found is this: in school, you're given assignments, little (or sometimes not-so-little) programs to write that do something. of course, the assignments are designed to illustrate a point, something you've learned recently. but it can serve the same purpose in real life. think of something (doesn't have to be a novel idea), then try to build the functionality of it. it'll be frustrating working through finding bugs and learning how to do xyz, but you'll find that you've learned to use your tools, even if the project doesn't ultimately get finished.
good luck with RoR!
nice read! I wonder how much of it is still relevant today (i.e. gc speed in Java, relative superiority of its library, etc.). OCaml is one of those languages that interests me, but I don't know if I'd ever have a reason to learn it to do something specific, when the languages I've been using are already pretty flexible.
Also (unfortunately, IMHO), this talks a lot about speed, which was a big problem in the Pentium 200 days with minimal RAM, cache, etc. Nowadays, any old poorly written, garbage-collected program runs speedy as hell. Seems like lost is the golden days of optimization.
i understand your frustration. however, like you said, they're on vacation; one of the great things about that is you can relax and be yourself, and if you enjoy hollering at football in a bar, more power to ya!
there are plenty of very smart, dedicated people i know who work hard all day, but once quitting time comes they want sports and beer. they're not a waste of space for indulging; they work hard doing important things, and enjoy themselves when they're done.
sounds like you're frustrated with the overall situation, though (stuck in a foreign town, girlfriend is sick, etc.). you may find yourself more resilient if things weren't so stressful in life!
love it. gives me faith that the archaic machines i have serving can still hold their own!
success is not just the sum of the features. offering something that other players have won't bring success, unless you can convince people it is significantly better, and _prove_ it. offering something competitors don't have also won't bring success, unless you convince people it's something they need or desire.
reinventing the wheel won't work unless you can show people that something is missing or wrong with what they're already used to. even then, it won't happen overnight, and it may not happen at all. take G+ for example. they made some not-insignificant changes to how people communicate in their network. they've already got a ton of users, but it's only been ~2 months. it could just be flashy-new, and could fade in another 12.
maybe another way to think about things is about what social networks represent: interactions between people. you have people you know, people you don't, people you want to talk to, people you want to listen to, things you want to share publicly, things that are private, etc. etc. maybe instead of building up a feature set, it would be beneficial to think about human interactions and relationships, and see how software may be able to represent that better than current models (G+ is trying this with circles).
quite honestly, any of them.
all the "big ones" i.e. debian/*buntu, fedora/redhat, etc. will have (nearly) any language's compiler/toolset in their package manager, and therefore just a couple minutes away from install. and even if they didn't, they're 2 google searches away from a download and install.
so, you're in luck! take your pick and dive in :)
i found your article to mean a lot to me, personally, as i saw a lot of the reasons for my past projects abandoned in your analysis. best of luck for the future!
i think this is great. not that he was 13 (though it is impressive), but that he thought enough to challange the typical panel array that we've gotten solar power from in the past. it seems that he got some interesting results, too. sure, maybe he didn't take some things into account, or maybe it's not super practical, but breaking out of the mold of large, 2d rectangular panels may be something the solar energy world needs to innovate on ways to harness more energy from the sun efficiently.
Under 5gb, over 2gb. comes from streaming subsonic/pandora at work and on the road. without that, I'd be well below 2gb
i ssh into a server, but i learned about using a local VIM instance to edit remote files yesterday (on HN, of all places) and will be doing it that way from now on. no more need to spread my fine-tuned vimrc to every server i use!
this just proves how fast things can change in our industry. don't be afraid of the criticism, because you never know what will happen in 5 years.
side-projects. wish i had the guts/savings to go full time.
dogpile is still around? didn't know that.
thank you for your in-depth reply, I really enjoyed it! I love you metaphor of Mona Lisa's smile, it works perfectly for describing how people feel about different approaches to the same "problem".
haha, fantastic point :)
I really like the "genius or fool" quote, it is perfect. thanks for sharing!
very good point. thanks!
thank you for your motivation! I really appreciate it. it's because of smart, motivational people like you that this board flourishes
yeah, it's hard to imagine being similar to someone who built something covered in TC, when something I built has only ever been covered on my (small) college's website. they don't seem to compare :)
interesting, I've never thought of it that way. that actually is a fantastic parallel in this case, too.
I know competition brings innovation, but it still makes me feel very self-conscious about my abilities to create a comparable product, one that could be considered an "alternative".
Thanks for your response!