Tweet
So many times I've found myself in trouble after developing a generic solution to a very specific problem!

#buildinpublic
Sometimes I think that my best code is the one I haven't written.

And trust me, the code I do write, is really good.

#buildinpublic
There will be four types of people who will use Osm Admin: power users, developers, vendors and contributors.

Let's think what they need to know before using the product:

#buildinpublic

osm.software/blog/22/07/dat…
It's July already, and I feel that summer finally starts for me. On one hand, better late than newer. On the other hand, it means a lot less time for coding, and more time for reflection.

Let's start with a backlog vs roadmap.

#buildinpublic

osm.software/blog/22/07/dat…
Osm Admin:

👍Now works on GitPod remote development machines!

👍It makes contributing to Osm Admin and projects based on it a breeze - just start a remote machine, develop and test there, and submit a pull request!

#buildinpublic

Tech details 👇

osm.software/blog/22/06/dat…
Osm Admin:

👍Finished the side menu
👍Added the admin area home page

#buildinpublic

osm.software/blog/22/06/dat…
I like that now in Osm Admin, all tests pass, and CLI and UI work as expected.

Let's keep it this way.

From now on, all major development will take place in feature branches.

#buildinpublic

osm.software/blog/22/06/dat…
Osm Admin:

👍Yay! After implementing invalid data conversion, I finished the iteration #18 dedicated to diff-based migrations!

#buildinpublic

osm.software/blog/22/05/dat…
I must say, it's a bit disturbing to implement the same thing for the third time. Still, the goal is to get it finished, and have it sustainable.

After the effort, Osm Admin code has become su much easier to read!

#Buildinpublic

osm.software/blog/22/05/dat…
Osm Admin:

👍I continued working on property diff algorithm that plans all the migration details.

#buildinpublic

osm.software/blog/22/05/dat…
Osm Admin:

👍Yesterday, I finished implementing data conversion for `int` and `string` property types.
👍Then, I started refactoring it.

#buildinpublic

osm.software/blog/22/05/dat…
Osm Admin:

👍I continued solving data conversion issues (4 solved).

#buildinpublic

osm.software/blog/22/05/dat…
Osm Admin:

👍I finished implementing `string` property migrations.
👍Migrations have got a meaningful log explaining what migrations take place, and why.
👍Along the way, I fixed numerous issues.

#buildinpublic

osm.software/blog/22/05/dat…
Osm Admin:

👍Yesterday, I finished writing `int` property migrations. True, testing it is still a todo.

👍The major part of the code (type change, nullability and other attribute handling) will be reused in other property types.

#buildinpublic

osm.software/blog/22/05/dat…
Osm Admin:

👍I refactored `Property::migrate()` using additional `Migration` classes. It's so much more convenient!

👍New code structure already handles property explicitness changes.

#buildinpublic

osm.software/blog/22/05/dat…
If you are doing something for the first time, don't be afraid to experiment.

#buildinpublic
Osm Admin:

👍After enumerating what kind of changes can happen to a property, I started implementing the most hard one - changing property type.

#buildinpublic

osm.software/blog/22/05/dat…
My latest post about planning projects in terms of problems to be solved rather than hours to be spent.

#buildinpublic

osm.software/blog/22/05/met…
Osm Admin:

👍Bulk UPDATE method is implemented in the TDD way.

#buildinpublic

osm.software/blog/22/05/dat…
Osm Admin:

👍 new ALTER TABLE algorithm
👍 NULL to non-NULL data
👍 conversion
new query test suite

#buildinpublic

osm.software/blog/22/04/dat…