4 ms·
Show HN: C is for Camera, a 35mm film camera represented in Python objects
- DanieleProcida 6y agoI started exploring a graphical user interface too, using Anvil - https://camera.anvil.app https://camera.anvil.app. It only has two controls so far, but it's simply a matter of adding form elements and output for the existing objects.
- ksm1717 6y agoI love this. Mapping a real world system/domain to code objects is my favorite programming exercise.
- Apreche 6y agoFun little project. As a Python developer who owns that specific camera, I approve.
- m463 6y agoThis is silly. good silly. (Like those Canon L-lens coffee cups)
- tantalor 6y agoIs the "ruined" state dependent on the environment luminosity multiplied by time? Like, is 0.1 lux (full moon) safe for a few seconds?
- DanieleProcida 6y agoSo far, it's only dependent upon luminosity - as long as it's not 0, it's considered ruined. And in reality, the unexposed frames wouldn't be ruined either (that's easy enough to model).
- F00Fbug 6y agoThis is a great exercise -- well done! What I try to convey to my students: * We write programs to solve problems. * The program is a model of the real-world problem. * The better our model is, the easier it is to solve the problem. * Objects are excellent ways to model real-world "things" and manipulate them in our programs. I see online there's a movement that says OOP is "bad" but honestly in cases like this it makes perfect sense to me!
- craftinator 6y ago> I see online there's a movement that says OOP is "bad" but honestly in cases like this it makes perfect sense to me! TLDR; bad code practices make bad code. I think that this is confined to people who have a functional programming fetish, and those that worked at companies that drank the "OOP cool-aid" back in the late 90's early 2000's and built their codebase into massive, sprawling, strictly hierarchical monstrosities... I may have worked for one of these, and hated OOP with a passion till I realized that anything taken to an absurd degree is absurd. If we all just orient our models in relationships that make sense for what they do, OOP is fine.
- Dylan16807 6y ago> massive, sprawling, strictly hierarchical monstrosities > till I realized that anything taken to an absurd degree is absurd Whenever I see OOP taught, the expectation is that every non-primative is an object in a massive hierarchy. If the default is an absurd degree, what does that say?
- grenoire 6y agoThat it's badly taught, not necessarily bad in itself.
- Dylan16807 6y agoIt makes a difference for categorizing and talking about OOP though. If the default level is good, and some people take it to absurd counterproductive levels, you need to give a bit of a warning. If the default level is absurd and counterproductive, but using a fraction that much is good, you need to approach the conversation in an entirely different way and "OOP is bad" is kind of correct and important to address.
- craftinator 6y agoAgain, your argument boils down to "doing bad stuff is bad", which I completely agree with.
- frompdx 6y agoNeat project! The QL17 was my first rangefinder as well as one of my first cameras. I sold mine to someone in the Netherlands who insisted on paying cash. I had my doubts but a week later I received an envelope containing crisp new US currency in the amount we agreed upon in the mail, so I sent him the camera. Wish I would have kept it but I have too many cameras anyway. A great extension to this would be the dedicated flash for the QL17.
- t0mek 6y agoThis reminds me the tweet [1]: manager: we need to design an admin system for a veterinary centre dev: ok, this is it, remember your training class Dog extends Animal {} [1] https://twitter.com/iamdevloper/status/727854065426804738?s=21 https://twitter.com/iamdevloper/status/727854065426804738?s=...
- woodruffw 6y agoNeat project. I love seeing models of complex, real-world systems. One that I've always wanted to try is modeling an elevator bank: there's a surprising amount of complexity in the different states that an elevator can be in, as well as relevance to basic CS concepts (hierarchy, priority, capacity, &c).
- tantalor 6y agoOh man you're going to LOVE this: https://play.elevatorsaga.com/ https://play.elevatorsaga.com/
- ravi-delia 6y agoThat is fantastically fun. What a neat little project!
- Badfood 6y agoXrays.Dew.temperature extremes. Misloaded film. Dust or mould on lens. Physical damage. Shutter mechanism life is limited and they need to be pre emptively replaced. External flash sync. Problems between flash sync and shutter speed. Light meter false readings due to dirty light meter lenses. All of these are real. I'm a professional photographer and I own this camera in my historical collection. What's my point? Fuck OOP