[HN Gopher] That Time I Recreated Photoshop in C++
___________________________________________________________________
That Time I Recreated Photoshop in C++
Author : f055
Score : 287 points
Date : 2025-03-15 18:22 UTC (2 days ago)
(HTM) web link (f055.net)
(TXT) w3m dump (f055.net)
| chpatrick wrote:
| Photoshop has a million features though, a couple of image
| filters doesn't really count as recreating.
| ForTheKidz wrote:
| Still very, very impressive for undergraduate work.
| JackFr wrote:
| Nailing the UI though is both very difficult and very
| important.
|
| In 2006, GIMP had a ton of features, but compared to
| Photoshop's UI it was positively awful.
| brnt wrote:
| People say this, but I didnt have such issues using Gimp
| compared to PS. They are different, that's it.
|
| The main thing I missed were stackable layers, but it was not
| a huge issue for me.
| phendrenad2 wrote:
| People say it because it's true for them. User experience
| is after all highly subjective. I think that the open-
| source world largely ignores this fact and pretends that if
| any one person says "good enough for me" then it's done.
| brnt wrote:
| The reserve is true too: if anyone says it's NOT good
| enough for them, then it's done.
|
| Actually check it out yourself, and give yourself some
| time to get used to it. If you care about not using PS of
| course.
| Arainach wrote:
| You could replace that year with any year since the start of
| the GIMP project and it would still be true. It's the epitome
| of an open source project run by people who care about
| technical features, not real world users.
| pdntspa wrote:
| Photoshop had a pretty steep learning curve. "Users" had to
| spend some time getting to know the workflow.
|
| GIMP also has a steep learning curve. But these same
| "users" turn their noses at spending some time getting to
| know the workflow.
|
| As someone who is proficient in both, it is not hard to hit
| similar levels of productivity with GIMP as it is in
| Photoshop.
|
| I hate this attitude that people have with open source
| being "user hostile". Stop acting like spoiled children.
| Why must the software always come to you? Why cant you come
| to the software?
| Lord-Jobo wrote:
| I think the biggest hurdle is that the shortcuts, ui, and
| workflows all feel different for the sake of being
| different. Why reinvent the wheel on it?
|
| I also hate this idea that we aren't allowed to give
| feedback on open source software. I get it, it's an
| incredibly thankless thing to do, but feedback of "having
| to relearn all of this stuff is unpleasant" isn't a
| problematic thing
| BizarroLand wrote:
| It's not that they CAN'T duplicate photoshop, it's that
| adobe would sue them out of existence if they did.
| m-schuetz wrote:
| Gimp is an entirely different league of user hostile.
| There are intuitive GUIs, unintuitive GUIs, and then
| there is GIMP.
| pdntspa wrote:
| Everyone says this, but nobody backs it up.
| m-schuetz wrote:
| The thing about something like usability is that if, as
| you say, "everyone" says it's bad, then it is bad.
| pdntspa wrote:
| Or they're propagating a meme.
| HeyLaughingBoy wrote:
| Because tools should be built for their users, not the
| other way around.
| mock-possum wrote:
| Last time I checked ( a few months back) there was a little
| package of configurations + plugins / skins that were
| geared towards tweaking GIMP to be more accessible to
| people who were familiar with Photoshop -
|
| And it wasn't perfect, but give credit where credit is due,
| it was better than it's ever been, it definitely got me
| close enough to complete a little photo collage project.
| jeroenhd wrote:
| GIMP definitely suffers from programmer UI design, but
| Photoshop isn't much better. Menus nested in menus nested
| in dialogue boxes, keyboard shortcuts that conflict with
| every other shortcut on any system still in use today, and
| of course the assumption that everyone already knows what
| every button does. It's not quite Blender levels of
| unintuitive, but there's a reason people take courses just
| to use the damn program. If it weren't for the branding
| popularity and the fact Photoshop was one of the first
| programs of its kind, I don't think it'd ever gain
| popularity with that terrible kludge of a UI, and that's
| without the ridiculous price.
|
| Ever since GIMP docked toolbars and windows by default
| (which also took a few versions in Photoshop) I don't think
| the interface is that bad anymore, at least not compared to
| Photoshop.
| raincole wrote:
| Photoshop's UI is terrible as well (not defending GIMP). At
| least for digital painting.
|
| - How to set 'C' key as to open color palette?
| Surprisingly, you can't do it in Photoshop.
|
| - Photoshop is the only painting app that needs a
| completely new interface for liquifying, instead of just
| implementing it as a brush.
|
| - Photoshop's 3D, vector path and animation feature are all
| abysmal. I guess it's to push you to buy other Adobe
| software.
| kakuri wrote:
| GIMP is astonishingly bad. I got by for many years with
| Paint Shop Pro, even through its steady decline after Corel
| acquired it, but eventually they destroyed it. In
| desperation I turned to GIMP but it is so bad that I now
| use Photopea. I would pay for a modern functional
| equivalent of Paint Shop Pro, but I don't know that it
| exists.
| 77pt77 wrote:
| What's your opinion on Krita?
| badsectoracula wrote:
| As someone who has used a bunch of different image editing
| tools to make stuff (mainly for games, though i'm not an
| artist - i just need to make art :-P), Krita is fine. It
| has a bunch of weirdnesses (e.g. 2983942 commands to paste
| an image and all of them are kinda weird or missing in some
| way) and doesn't have as much features as GIMP but overall
| it is fine. Then again i found GIMP fine for a long time.
|
| Though my favorite UX (and features) of all time is Paint
| Shop Pro 7 which i find superior to Krita (i have it
| installed alongside Krita, GIMP and Kolourpaint -used for
| minor edits since it starts instantly- on my Linux setup
| via Wine). I used it since Win3.x days in the 90s until
| PSP8 was released and they screwed up the UI. I moved to
| GIMP some time later when i started using Linux and used
| that for years. Some years ago i found a boxed copy of PSP7
| anniversary edition, reinstalled it and despite not using
| it for more than a decade i found it much easier than GIMP
| and i'm using that since, until i wanted to make a plugin
| to assist me with texture painting for 3D models. Making
| plugins for PSP7 was very cumbersome so i thought to try
| Krita instead (Krita has an MDI mode which i like when
| working with images) and ended up sticking with it since
| making the plugin was relatively easy[0].
|
| I'll download Krita's source code and try to build it and
| add the features i miss from PSP7 at some point, KDE people
| do not seem very allergic to having options so i might be
| able to recreate the stuff and behavior i miss from PSP7 in
| Krita.
|
| In order of preference:
|
| 1. PSP7
|
| 2. Krita
|
| 3. Pixelmator (only under macOS of course and i only used
| an old version before App Store with the only alternative
| being GIMP running under XQuartz - i think GIMP got a
| native version later but i never used it)
|
| 4. GIMP (i found older versions easier to use, but every
| time they introduce a new major UI change i find it more
| awkward than before and now they're switching away from
| Gtk2 to Gtk3 -which i dislike the feel of- i decided to
| stick with Krita)
|
| 5?. Photoshop, maybe (i only used it a little in the past,
| always found it more cumbersome than GIMP or PSP, but it'll
| do if nothing else is available)
|
| [0] http://runtimeterror.com/tools/kritaview3d/
| numerosix wrote:
| Same as you... I don't use psp anymore because i'm on the
| lovely penguin for decades but psp was the finest paint i
| ever use, since, too, win3...
| raincole wrote:
| (not the GP)
|
| Krita is very functional as a digial painting program. But
| I think the dev team took the "painting" part of digital
| painting too literal. They clearly spent a lot of time
| developing niche brush features (the only painting app has
| more detailed brush settings I know is Corel Painter),
| which is nice, but some other areas are neglected.
|
| In comparison to Photosho, it's quite painful to add any
| text in Krita. The layer styles and filters are much less
| performant. But if you only do painting, Krita is totally
| fine.
| ffaser5gxlsll wrote:
| This is completely subjective.
|
| As a student I used a ton of warez software in the 90ies. As
| such, I didn't have any real prejudice back then, and
| photoshop was the worst of the bunch from my perspective. I
| held that view for a long time, akin to how I consider
| autocad from autodesk one of the worst cads you could use
| despite being outrageously popular.
|
| I have no longer an opinion on it as I didn't use it for such
| a long time. I'm cycling between krita and GIMP, and GIMP's
| UI is just fine to me, in the same way I suppose a ton of
| designers-with-big-opinions are more familiar with photoshop
| due to all the training they did on it (and probably,
| _mostly_ on it).
| Nzen wrote:
| Sure, our expectations about UI patterns are path
| dependent. However, if a program isn't consistent
| internally [0] (rather than against the body of software we
| are familiar with), then the complaint is less subjective.
|
| [0] https://www.youtube.com/shorts/tFYkGyaXCw0 1 minute
| example of the procedure for editing a brush style
| BizarroLand wrote:
| I get that whoever made and posted that terrible youtube
| short is annoyed, but if they had done a basic search
| online, specifically "how to edit a brush in gimp", the
| first result would have taken them to this page:
|
| https://docs.gimp.org/en/gimp-brush-dialog.html
|
| Which says:
|
| It is a general rule that you cannot alter the resources
| that GIMP pre-installs for you: brushes, patterns,
| gradients, etc; only ones that you create yourself.
|
| It's okay to be annoyed when something doesn't work the
| way you want it to, but RTFM before you make a rant about
| it. It's the bare minimum.
| rcxdude wrote:
| It also did lack some important features. It still doesn't
| have proper support for different colorspaces, for example,
| and it's really not very on board with non-destructive
| editing in general.
| airstrike wrote:
| I don't think we're meant to take "recreating" literally
| account42 wrote:
| Op chose to go with the clickbait title so it's fair that
| they get criticized for it.
| airstrike wrote:
| that's not clickbait at all
| imoreno wrote:
| If you say "I made basic image editor" it doesn't sound as
| impressive, of course. Not surprising given how it opens with:
|
| >As I'm getting older I look back on all the things I've done
| as a creative developer, and I see so many cool projects!
|
| Such modesty...
| bufferoverflow wrote:
| Exactly. I think Photopea is the closest replication attempt,
| but even it misses many features.
| bschmidt44 wrote:
| Check out https://photopea.com/
|
| I use it daily.
|
| bro who made it is a beast
| timnetworks wrote:
| The native keyboard shortcuts
| wink wrote:
| IIRC it can't to ctrl-t (transform) because it opens a new
| tab.
|
| Gets me every time I use it. It's still a lovely piece of
| software.
| brulard wrote:
| Photopea is really nice. I was pleasantly surprise how many
| features they implemented to a free product. And even UI is not
| half bad. Kudos!
| busymom0 wrote:
| I have used Photopea for so many of my projects. I make apps
| and I use it for every app icon and App Store screenshots I
| have built. Also used it to make memes. Not having to install
| it on my Mac and just easily accessing it from browser is
| immensely helpful.
| urbandw311er wrote:
| Yep. Have it as a desktop icon and use it like a native app.
| mrandish wrote:
| > "It followed a set of five rules to benefit the end user: no
| installers, no archives, no registry keys, no additional runtimes
| and a single executable file."
|
| Reading this sentence made me feel warm and happy. I get why the
| registry exists and things work the way they do today around the
| Windows software ecosystem but... damn, I really miss the days
| when most desktop software was more like this. These days I try
| to use portable installs whenever they're available, I just wish
| it was more common. The time, inconvenience and uncertainty I'll
| be able to fully restore all my preferences makes me actively
| avoid reinstalling Windows.
| dkga wrote:
| That simplicity and lightness of design also resonated with me.
|
| By the way, really cool read-off. The only thing I missed
| though was a deeper discussion of some of the challenges that
| the author alludes to in the beginning. But that's just me
| being pedantic, the post is really nice and actually seems to
| be quite an impressive work.
| yndoendo wrote:
| That is one of the reasons I like GO language. Single
| executable, which makes tooling easier for others to use. My
| alternative method is using single executable packaged with
| NSIS that extracts everything to a temp directory before
| running.
|
| Sorry, Window Registry is a cornucopia of inconsistency and
| poor design. Gnome's Registry is well designed, comparatively.
| Key descriptions, value options with limitations and which is
| the default is a quality User Interface design. Just look at
| the Windows group policy to registry mappings, they are all
| over the place for the same logic layout with double negatives
| for keys.
| airstrike wrote:
| Obligatory comment saying you can do the same in Rust
| IshKebab wrote:
| It's not quite as seamless as in Go to be fair. But it does
| mean you can write Rust instead of Go.
| delusional wrote:
| You can in fact also do it in C
| eptcyka wrote:
| I can't target msvc or aarch-64-apple-* and compile a
| binary on Linux, without resorting to significant amounts
| of rectal dentistry.
| iknowstuff wrote:
| Can't you just replace the "cargo" command with "cross"
| cross build ---target=...
|
| https://github.com/cross-rs/cross
| demurgos wrote:
| Cross-building for Apple is possible, but it's far from
| smooth with many steps that you have to figure out by
| yourself unfortunately.
| cooljacob204 wrote:
| I use this which seems to work well for my projects.
| Particularly their docker image.
|
| https://github.com/rust-cross/cargo-zigbuild
| jeroenhd wrote:
| I've built .exes for Windows just fine on Linux. I don't
| know about Apple stuff, though, I don't think there's any
| built-in Linux tooling to submit an executable for
| Apple's signature scheme.
| p_ing wrote:
| And .NET
| djfobbz wrote:
| Yeah, that's why Go is a solid win - single binary, no
| installer headaches, just build and run. Rust's powerful but
| comes with build complexity and dependency juggling. Go keeps
| it clean, fast, and dead simple to deploy.
| dgfitz wrote:
| I'm not sure what the best path forward is for making single-
| binary apps without static-compiling in of the libraries.
| Licensing usually makes that untenable.
| ryandrake wrote:
| The license is one of many the tradeoffs you make when you
| choose whether or not to include third party libraries. You
| don't have to use them.
| dgfitz wrote:
| I sure don't. You nailed it.
| maccard wrote:
| Pay for it, or open source your work (assuming you're talking
| about QT).
| TingPing wrote:
| The classic option is just a self extracting exe. I don't
| really understand the fear of archives personally.
| gkbrk wrote:
| Which license forbids static linking?
| 01HNNWZ0MV43FF wrote:
| They might be referring to *GPL libraries not allowing
| proprietary / permissive exes to static-link them. e.g. I
| think Qt requires its DLLs to be separate on disk as part
| of the LGPL, unless you buy the commercial license.
| rubymamis wrote:
| Please don't spread misinformation, there's a HUGE
| difference between GPL and LGPL, and you CAN statically
| link with LGPL you just must provide the object files to
| the user so they can re-link them with any version of Qt
| they want.
| thrdbndndn wrote:
| There are lots of useful actions an installer does that (some,
| if not most) end users actually want, including but not limited
| to adding shortcuts to start menu so you can find it or search
| for it, associating file formats, registering to Windows'
| program list, etc.
|
| I was a big fan of "portable" software, but nowadays if a
| software offers both ways, I actually prefer using installer.
| Otherwise I have to manually add them to Start Menu to be able
| to search for it, to begin with.
|
| I do hate registry keys, simply for the fact they are often
| lost after reinstalling the OS. Please just keep all the
| settings in %appdata%!
| pjmlp wrote:
| If only everyone actually kept up with Windows development
| best practices, including Microsoft teams themselves[0].
|
| Configuration via XML files, AppData, registry free COM
| activation, MSI installers, only to quote a few examples, are
| decades old by now, at very least since Windows XP.
|
| [0] - To be fair, nowadays many young employees seem to only
| ever used Windows after joining Microsoft, so what else can
| we expect, if apparently they don't get the right mentoring.
| CLiED wrote:
| Is there a book or site documenting these best practices
| somewhere? I'm getting into windows dev and am curious
| about them.
| p_ing wrote:
| https://learn.microsoft.com/windows/apps/get-
| started/best-pr...
| kibibu wrote:
| I cannot stand AppData, specifically the way it's often
| used to store files that should be in Documents.
| jeroenhd wrote:
| That should be covered by the part about "best
| practices".
|
| That said, I keep finding more AppData files in my
| Documents folders than the other way around. Linux
| software (especially legacy software that doesn't respect
| the XDG spec) is the worst for that, somehow spreading
| files and directories across my user profile directory
| and my documents directory.
| jamesfinlayson wrote:
| I'd never heard of AppData until a few years ago when I
| went hunting for where some game config file was getting
| written to.
|
| Seemed like a bunch of disparate things with the most
| common probably being a dumping ground for programming
| language library caches (Maven and NuGet and maybe
| another couple).
| kibibu wrote:
| I lost my kid's minecraft world because it stored
| everything under AppData/Local or some nonsense.
| mattl wrote:
| How did you lose it? That sounds super frustrating
| kibibu wrote:
| By backing up everything in important-looking folders
| (including My Documents, My Games, the Minecraft
| installation folder), and overlooking AppData as it is
| 99% download caches, tempfiles, and other garbage.
| hobs wrote:
| :) and local state, configuration, and anything an app
| needs when you do stuff. It's really the local user state
| in most cases, very important to back up!
| wink wrote:
| On my Win10 desktop it got to 30GB though and the stuff
| worth backup is actually about 1GB of it.
|
| Let's just call it what it is: a complete mess. Some apps
| install their binaries in there, some just config files,
| some all your data.
|
| If there are guidelines (and they are not conflicting)
| about 1/3 of apps are ignoring them.
|
| Also good luck trying to back it up with robocopy or
| anything, maybe windows' own backup tool can read it
| while running on that account, I usually get errors,
| which I think are mostly fine to ignore.
| hobs wrote:
| There's no good guideline - if you want a local cache
| that transports across user migration, that's the show.
| Windows doesn't really have a "separate your local disk
| cache from your backups" method, but you can certainly do
| the Cleanup Task to remove some things that buy into that
| modal that's 25 years old :)
| fngjdflmdflg wrote:
| I made a similar mistake when upgrading my SSD. There was
| some token that was stored in there that I needed, and
| IIRC I had lost the password needed to generate a new
| token. I only realized that I was even missing it a few
| weeks later when I needed to use the tool again. luckily
| I still had the old SSD so nothing happened. This
| happened even though I'm familiar with locallappdata and
| have even used it in some apps I created. It's just not
| the first thing you would think about when doing a backup
| unless you've already been bit by it before. Apps
| generally don't tell you if they store something
| important there, and the tool I was using never tell me
| where the token was stored. Doesn't help that file
| explorer hides the folder from you by default.
| pjmlp wrote:
| It is not meant for that, rather blame the developers.
| Dennip wrote:
| Probably just preference but I hate when apps put things
| in the documents folder, thats where I want to put the
| things I've created specifically, not automated config
| files etc. There should be a 'Preferences' folder or
| something to separate the chod in AppData from the useful
| stuff.
| Suppafly wrote:
| >I cannot stand AppData, specifically the way it's often
| used to store files that should be in Documents.
|
| Which programs do that? Or do you think things like
| preferences for programs should live among your
| documents?
| Gracana wrote:
| A lot of games store save files in appdata. That's the
| only thing I (not op) can think of, and one I regularly
| find annoying (if only slightly).
| Suppafly wrote:
| Yeah I suppose that's the only example I can think of, I
| noticed a comment later mentioning that that is where
| minecraft saves things, although I'm not sure I'd want
| those in with my documents either. They probably should
| live some place that the user has access to, so I guess
| that leaves app data or documents, neither feels like a
| great choice.
| vlovich123 wrote:
| What about a standalone executable that just offered the
| ability to install itself without having a dedicated separate
| installer?
| restalis wrote:
| It would be annoying. If the use-case is as a portable
| application, but the application would want to let the user
| know (in a sufficiently loud manner) that it can install
| itself, then either the user would be forced to pay
| attention at that aspect every time it opens the
| application, or that "portable" application will have to
| somehow pollute the environment with (at least) a note for
| itself of the fact that user was offered but chose not to
| install anything. That note is usually just a first change
| in the system and, for a non trivial application, is way
| too easily followed by many other kind of saved changes,
| which in itself looks like a creeping install. Then, if the
| user would actually choose to install, the app will have to
| do what, make shortcuts to its current location, which may
| be a thumb-drive, or another less ideal placement for a
| program (because how many of us take time to think about
| file management anyway)? Or, if the application makes a
| copy of itself to a conventional place (for an application)
| in the system, then now the useless standalone executable
| either gets forgotten about or becomes a burden for the
| user (who has to decide what to do with it).
|
| The most appropriate behavior for a portable application is
| for it to stay clean by default and only offer the user to
| explicitly enable persistency-dependent functionality. When
| the application starts, it checks if there's any previous
| trace of itself and depending on that it either keeps its
| portable-like clean behavior or switches to installed-like
| one.
| vlovich123 wrote:
| Why would it have to let the user know via an obtrusive
| splash or anything? Could just be a very simple
| unobtrusive option on app launch or a menu item.
|
| Same goes for post install - not too hard to arrange to
| auto delete the old copy.
| jamesfinlayson wrote:
| I remember a game that did this in like 2006 (it was a
| small GUI program called drug baron or something like that
| - you bought and sold drugs and weapons with your sales and
| purchases affecting the market - like a text-based game
| without having to use the command line).
|
| It didn't work so well (probably not programmed that well I
| guess).
| moron4hire wrote:
| I suspect there were a few games like this, but I think
| the most popular one was called Drug Wars, in case anyone
| cares to go looking.
|
| Yes, it was very poorly programmed. It always surprised
| me how popular it was. I think it was kind of a middle-
| to high-school meme game. I think the main popularity was
| that A) it was edgy, and B) kids could run it in school
| computers.
| pjc50 wrote:
| The really tedious answer is that there's special (very
| badly documented) magic to installers on Windows. I suppose
| you could shove an MSI inside the executable, then write it
| out and shellexec to install the MSI.
| klodolph wrote:
| I'm really fond of the way macOS does this, which is to stick
| this information in the executable.
|
| Back in the day, this worked via a flag in the metadata for
| each file. When you got a new executable, the flag was
| _unset_. The OS would see a file with an unset flag, ask "Is
| this an executable? What files can it open?" and then add
| this information to a database called the desktop database.
|
| This is why file associations work on a Mac without an
| installer, and without writing any code (you just have to
| write the code for "open file in response to OS request").
| alt227 wrote:
| > which is to stick this information in the executable
|
| This is neat, shame they went completely the other way with
| file metadata. It forces a hidden .ds_store file in every
| single folder a mac touches just to store info like access
| time. Every other system stores this in the file itself.
| manwe150 wrote:
| Not to be too annoying, but that file is how it supports
| the feature on non-posix-compliant file systems (usually
| FAT). On filesystems that support file-streams (or the
| original HFS), that metadata is stored on the file itself
| alt227 wrote:
| Considering how pushy Apple normally are when it comes to
| forcing their customers to use new things so they can
| obselete old ones, I am very surprised where Apple have
| drawn the line in supporting older systems.
| p_ing wrote:
| You're thinking of resource forks. .DS_Store is stored as
| ".DS_Store" even on APFS.
| NobodyNada wrote:
| Windows does the same thing with 'Thumbs.db' files.
| They're just hidden from you on Windows systems, just as
| .DS_Store files are hidden on Unix-like systems; but
| you'll see them if you use a thumb drive with both types
| of machines.
| alt227 wrote:
| So why are the smb shares on my linux file servers full
| of millions .ds_store files but zero thumbs.db files? I
| have to run automated scripts to remove them regularly,
| and try to run the commands on the macs to stop them
| writing ds_store files to network shares [0]. But still
| it seems to magically reenable itself every now and then.
| This is a problem I have never had with windows machines
| and 'thumbs.db' files.
|
| [0] https://web.archive.org/web/20190714230437/https://su
| pport.a...
| p_ing wrote:
| If I recall, Windows does not generate thumbs.db files,
| thus file icons-as-pictures, on any non-local device.
| jamesfinlayson wrote:
| I didn't think newer versions of Windows generated
| Thumbs.db either (well I think they do, but in some
| centralised location I thought rather than in every
| single individual directory).
| noisem4ker wrote:
| "Newer versions" >= Vista (2007)
|
| They switched to storing thumbnails locally.
| NobodyNada wrote:
| Ah, guess my knowledge was a bit out of date then :) I
| haven't been a regular Windows user for quite some time.
| I _thought_ I 'd seen Thumbs.db files generated on flash
| drives by at least 7 though.
| DidYaWipe wrote:
| Because Apple thinks nothing of spewing these turds all
| over every machine and directory you visit from a Mac,
| which is not just a dick move but also technically
| incompetent.
|
| The next Mac visitor who comes along will overwrite the
| turd with his own, so that's a blunder.
|
| Then there's the fact that they could have stored all the
| turds on the local machine, keyed by URI or path or
| network address. This would solve both the dickishness
| and the overwriting problem. And if a remote machine's
| path or address changed, whoop dee doo... you lost your
| Finder layout for that directory. Pretty low stakes.
| Lammy wrote:
| Relevant: "The Mac, Metadata, and you" (2001)
| https://arstechnica.com/gadgets/2001/08/metadata/
| neotek wrote:
| First thing I used to install on macOS was Binaryage's
| superb asepsis utility, which intercepts the creation of
| .ds_store files and redirects them all to a local
| container folder, until SIP killed its development.
|
| It always seemed suspicious to me that Apple, a company
| that is famously obsessed with UI/UX, would settle on
| such a ridiculous process for storing file metadata.
| paulddraper wrote:
| I mean...that's just the same thing right?
| klodolph wrote:
| Same thing as what? Same thing as having an installer
| modify HKEY_LOCAL_MACHINE\Software\Classes, and having
| the associations break if you move the program to a thumb
| drive?
| cosmic_cheese wrote:
| Furthermore, the OS can pick up the extensions, services,
| etc the app carries within its app bundle and offer them to
| the user to enable this way. No need to copy files to
| obscure directories (be it manually or with an installer),
| and when you trash the app bundle they're all gone.
|
| This is why merely having a copy of an app is enough to
| make QuickLook able to preview the filetypes the app is
| capable of opening. The system picks up the QuickLook
| extension in the app bundle and enables it.
|
| It's not perfect since small .plist config files get left
| behind, but it's a whole lot more clean by default compared
| to the Windows approach.
| DidYaWipe wrote:
| This is just not true, and hasn't been for decades. Many,
| if not most applications create subdirectories and store
| stuff in the Library/Application Support directories.
| Trashing the app bundle leaves all that stuff behind.
| cosmic_cheese wrote:
| It comes down to each individual developer, and generally
| speaking indie devs are much better behaved than cross
| platform giants like Adobe. It's another reason why Mac
| users often have a preference for native AppKit apps,
| which are what indie Mac devs tend to build.
|
| Either way, the end result is still better than under
| Windows because at least macOS doesn't go out of its way
| to keep the Application Support folders (user and global)
| hidden with magic URLs and such. Tick the checkbox to not
| hide the Library folder in your home folder's Finder
| inspector window and the only thing making access harder
| is gone.
| hobs wrote:
| >Either way, the end result is still better than under
| Windows because at least macOS doesn't go out of its way
| to keep the Application Support folders (user and global)
| hidden with magic URLs and such. Tick the checkbox to not
| hide the Library folder in your home folder's Finder
| inspector window and the only thing making access harder
| is gone.
|
| The way to access your folders in windows is literally
| exactly the same -> show hidden folders - the "urls"
| (%APPDATA%) are just shortcuts because of the historical
| moving around of stuff. Most devs leave all sorts of
| trash in OSX application support, check it out, its jam
| packed. Some apps are now running from there.
| cosmic_cheese wrote:
| It's not the same because macOS has a setting for Library
| folder visibility specifically. Keeping that folder
| easily accessible doesn't require turning on visibility
| for _all_ hidden folders /files and then having to wade
| through a ton of normally invisible junk.
| ~/Library/Application Support/ is just a plain old path
| too, no need for magic platform specific keywords.
|
| And yeah, Application Support is full, but as noted the
| worst offenders are consistently cross platform apps that
| don't care to adhere to convention. The Application
| Support folders for Mac-first apps are usually pretty
| lightweight/clean, with exception to apps like Logic
| which use it as a place to keep downloaded assets.
| DidYaWipe wrote:
| Actually, it does. A few OS versions ago, Apple started
| hiding the user Library directory. And then obnoxiously
| RE-hiding it with each OS update if you had cleared its
| "hidden" attribute.
|
| I think they finally stopped the re-hiding behavior.
|
| None of that compares to the mess that is Windows's user
| directories. I mean... WTF is all of this stuff? There
| are two or three copies or shadows of the user-directory
| structure, and everything is "forbidden..." Windows is
| just painful and infuriating to use at this point.
| delusional wrote:
| After using Microsoft Intune I will never again complain
| about installers. At least installers mostly work, and when
| they don't you can run them again.
| Kwpolska wrote:
| If I want to use a program once, I'll just use a portable
| version. And I'll be angry if it decides to add itself to the
| context menu of all Explorer files.
|
| But I agree, for things I use more often, installers are the
| way to go, and I am not a fan of projects that just give you
| a zip and ask you to figure out where to put it.
| Suppafly wrote:
| >There are lots of useful actions an installer does that
| (some, if not most) end users actually want, including but
| not limited to adding shortcuts to start menu so you can find
| it or search for it, associating file formats, registering to
| Windows' program list, etc.
|
| This, I don't really mind unzipping some random small
| utility, but for things like games and larger applications
| where you'll actually be saving data and preferences, a real
| installer that knows how and where to put things following
| the correct methods for the operating system is much
| preferred. Then I can run the uninstaller to clean it up when
| I'm done with it.
| marcodiego wrote:
| > no installers, no archives, no registry keys, no additional
| runtimes and a single executable file.
|
| This is exactly the experience nowadays with AppImages.
| Narishma wrote:
| AppImages still leave traces in your home directory. If
| you're luck it's just a dot file or folder that can easily be
| deleted but I've seen some that pollute a lot more.
| tonyhart7 wrote:
| only works with hobby project with barebones feature
| Dwedit wrote:
| The original purpose of the registry was to tell COM where to
| look for a DLL file given a GUID. Then COM could create
| instances of objects.
|
| You still see that in there with HKEY_CLASSES_ROOT.
|
| You can technically create objects without the registry, if you
| load up the DLL, then call the exported functions to create a
| Factory object, then use the factory object to create
| instances. It's what COM itself does.
| StefanBatory wrote:
| Author of this article said he finished at Warsaw University of
| Technology - it was always considered to be one of the better
| ones here.
|
| That being said, what also strikes me is how different the thesis
| were back in times. I did mine recently in another university of
| technology in some bigger city (without wanting to dox myself
| that much) and 90% of our engineering theses were of very subpar
| quality; mine included.
| netsharc wrote:
| Is it any different nowadays? AFAIK the goal isn't to advance
| the field, but to prove to the people giving you the
| Bachelor/Master's degree that you're able to create a "paper".
| Some theses stand out, but most of them are probably quite
| boring.
| StefanBatory wrote:
| It seems to me like their tasks were way heavier. For us,
| most of us did basic CRUDs with some implemention twist, and
| our papers were your standard: do a short theoretical
| introduction to the domain, make a few UML diagrams, explain
| how it works + some code examples, then testing.
| nailer wrote:
| A friend from Phonegap got acquired by Adobe a decade ago and
| ported Photoshop to JavaScript for entertainment purposes
| immediately afterwards.
| nailer wrote:
| Not complaining about downvotes but it seems a very odd thing
| for Hacker News to dislike. I would have imagined an internal
| story about a SW eng's hack project would be interesting. Oh
| well.
| brulard wrote:
| I didn't downvote, but I fully understand if anyone would.
| Your comment shows some serious lack of understanding of the
| complexity of software like photoshop and the complexity of
| porting software. We may believe that's what your friend told
| you, but we have troubles believing he really did that. Maybe
| exaggerated (a lot)?
| zarzavat wrote:
| I assume by ported they mean compiled the C++ code to
| asm.js, now that as an Adobe employee they had access to
| the source code. Though this would still be a significant
| effort to get working.
| nailer wrote:
| > Your comment shows some serious lack of understanding of
| the complexity of software like photoshop and the
| complexity of porting software.
|
| No.
|
| He had access to the source code as an Adobe employee, he's
| a well known low level JS engineer (hence making Phonegap)
| and there are LLVM to asm.js webassembly compilers.
| aa_is_op wrote:
| Did it crash every 30 minutes?
|
| If not, how much are you selling it for?
| echelon wrote:
| It looks like you could have sold licenses to this or gone the
| startup route. Might have been slower and less glamorous than the
| gig you wound up getting, though.
|
| The UX looks simple and reasonable. Frankly better than Gimp.
|
| Really cool work!
| pessimizer wrote:
| > Frankly better than Gimp.
|
| Only for people who think that things are good to the extent
| they "resemble Photoshop as much as possible." [direct quote]
| The Photoshop UI isn't ideal, it's fairly terrible (not as bad
| as Illustrator, but they're both just _old_ ), but people don't
| want to waste the huge effort it took to commit all of that to
| muscle memory.
|
| Cloning Photoshop for a thesis is wild, though. From a comic
| book reader to most of Photoshop in one leap.
| IshKebab wrote:
| > It looks like you could have sold licenses to this
|
| Doubt it. There are too many good free options on this level,
| e.g. Krita.
| jeroenhd wrote:
| Today? Sure. Photopea blows any hobby project out of the
| water.
|
| In the summer of 2006? This could've been a commercial
| product for sure.
| echelon wrote:
| Krita blows though. It looks and feels like a horse of an
| app. I'd pay for better UX.
| pacifika wrote:
| The things people make and not tell the world about. Glad it's on
| GitHub, this is so impressive.
| dingdingdang wrote:
| Let's get a direct link to this beauty in place:
|
| https://github.com/f055/fedit-image-editor
| brulard wrote:
| There was a project called "pixel32" and later "Pixel Studio Pro"
| in the early 2000s. It looked really nice and was sold as early
| access. But became vaporware, people that paid became really
| pissed and the guy creating it turned from hero to villain
| quickly.
|
| https://discuss.haiku-os.org/t/pixel-studio-pro-in-past-call...
| 90s_dev wrote:
| > But I didn't promote it. A few months later, I landed a C++
| job. So in the end all that effort paid off.
|
| It's interesting how instinctively we know our hard work deserves
| to be paid off, but it's a shame how often open source developers
| put hard work into code that never really gets paid off,
| especially when it's widely used in production. I guess this
| explains why so often they look for reputation credits, or why
| NPM added the "maybe you should donate to the authors of these
| libs" feature, or why GitHub built in Patreon. There's got to be
| a better model than what we have now, that doesn't take advantage
| of naive but hard working young thinkers.
| theodric wrote:
| Slick. Runs pretty well under Wine!
| DidYaWipe wrote:
| "Straight from my previous project named Fiew I added a massive
| image library viewer. It really could quickly and easily scroll
| through massive amounts of pictures."
|
| Which is now infuriatingly lacking in the entire domain of image
| editors. Thumbnail browsers used to be an expected feature of
| image editors, even shareware ones. Now? Fat chance. Good luck
| even finding a stand-alone one.
|
| Recently one called FlowVision surfaced for Mac, and it's pretty
| much the lightweight browser that many of us have been looking
| for for years. It has some rough spots, but the developer is
| responsive to issues. https://github.com/netdcy/FlowVision
| DeathArrow wrote:
| In my experience, when developing software the hard part is
| implementing the actual logic, not the UI.
|
| In this case, replicating Photoshops UI seemed to be the hardest.
| Maybe using something like MFC, Qt, C++ Builder instead of
| straight Win API would have been easier.
|
| I remember a long time ago when I was in high-school and tried to
| implement a paint program under DOS, that had windows using
| Borland C++ and BGI graphics library. How hard should it be to
| implement windows, buttons and dialogs, I thought? After all,
| with the power of OOP and C++, every problem is easy to solve, I
| thought.
| iforgotpassword wrote:
| I think most people will agree that ui is the hardest part for
| normal desktop software. Not getting any kind of ui going, but
| good ui. Consistency, how to group things, what goes where.
|
| If your app needs two inputs and a button then this won't be so
| much of an issue, but I've wrestled with qt in the past for
| more complex layouts that I hate it with a passion.
| waqas123987 wrote:
| "How can network monitoring improve the reliability and cost-
| efficiency of telecom services
| promoterr wrote:
| umm, what's wrong with: https://affinity.serif.com/en-us/ ? Adobe
| is out-of-everything for decades..
| mjlee wrote:
| It was released 7 years after this project, and downloading
| someone else's image editor is not a typical route to
| submitting a final thesis for a degree.
| vijucat wrote:
| This is why I love Windows. There is a TON of small, open source
| software that serves a niche. Used to browse sourceforge.net and
| freshmeat (is that what it was called?) to find them!
| ArkimPhiri wrote:
| oh you did?
| NotAnOtter wrote:
| Photoshop is a stretch.. that's more like MS paint in terms of
| feature parity.
___________________________________________________________________
(page generated 2025-03-17 23:02 UTC)