Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 07/22/20 in all areas

  1. Vincent Parrett

    How do you organize developing new features in big projects?

    If I had a $ for every time I heard this argument, well I'd have more beer money 🍺 Using version control really is a must these days, I don't know how you manage to keep track of things without it. There are plenty of zero cost options : Git - I use this for my open source projects - I use Fork as the ui but often just use the command line, Mercurial - we use this in house - Install TortoiseHg and you have a great UI Subversion - not my fav but some people like it Along with version control, a good diff tool is invaluable, we use Beyond Compare (written in delphi, built with FinalBuilder, gotta love inception!) - it's a bargain at USD$60 - I am amazed they don't charge more for it, but on the other hand I have 5 licenses so happy with the price 😉 Learning version control is not difficult (if you can drive delphi you have some tech skills for sure!), there are lots of tutorials etc on youtube etc. So my advice would be to start there. Once you have that ticking along (a few weeks of practice and discipline at the most) then you can move on to other things like build processes. Of course getting started with version control, builds etc can seem like a lot of overhead, but once you have it mastered it becomes a productivity boost and a life saver (when did I make that change and why? - be sure to add good commit messages!).
  2. David Heffernan

    How do you organize developing new features in big projects?

    You should drop everything and fix this. I'm sure we've told you this before. We were right then, we are right now.
  3. Dalija Prasnikar

    How do you organize developing new features in big projects?

    Manual version control is an oxymoron - there is no such thing as manual version control. It is not about something working perfectly or not, it is about manual version control not working at all. All you have are backups of your code at some point in time. Nothing else.
  4. Mahdi Safsafi

    GExperts supports even more laziness

    @dummzeuch I made some debugging and was able to get much more information about the exception. On the attached file you will find a lot of useful stuff plus some comment for clarification. I hope, you will find it useful for GExperts. ExceptionFilter.pas
  5. Stefan Glienke

    Buggy Optimizer in Delphi 10.4

    https://xkcd.com/292/ just saying
  6. Attila Kovacs

    How do you organize developing new features in big projects?

    And you can fire up a new project having everything needed in just seconds. Regardless if for testing/new feature/completely new app etc...
  7. Attila Kovacs

    How do you organize developing new features in big projects?

    Turn this to an advantage. It will pay off.
  8. YES you need it. With a source control system you can make as many backups (commits) per day as you want and you can return to any older version of a file if you broke something. A few tips: - There are very good freeware GUIs available (such as TortoiseSVN and TortoiseGit). Please use those, they save a lot of hassle. - I personally don't let the Delphi IDE manage the files in the repository, I prefer to do it manually. I use both svn and git, but I use them exclusively using the aforementioned tools. - It isn't really necessary to use an external server for your own (non-shared) repositories. An external USB drive will do just fine. - Whenever you want to add/delete/move/rename a file in your working copy, don't do it with the Windows explorer, only do it with Tortoise.
  9. David Heffernan

    How do you organize developing new features in big projects?

    The revision control comments are on topic. Revision control is a key part of how you develop new features in an existing code base.
  10. Lars Fosdal

    How do you organize developing new features in big projects?

    Why revision control... - Tracking changes - what is the change history of a unit? (Yes, you SHOULD write commit comments) - Comparing changes between current version with any previous version - Comparing changes between any previous version and another previous version - Automatic merging - ensuring that every little change makes into the other branch - Rolling back to a previous version if your changes turned out to be crap - Linking code changes to your issue management system such as Jira All at a click of a button, no manual tinkering, and not requiring multiple team members Taking it one step further - using f.x. Continua CI which is available in a free version limited to one task at a time, every time you commit a change, you can - Automatically build of each of the changed branches - Automatically run unit tests and integration tests - Automatically do translations, code signing, packaging, deployment to wherever you need to deploy - Export snapshots to your offsite backup system Yes, you can do manual zip archiving of code revisions - but man, they invented the wheel!
  11. By popular request of a single gentleman (*) there is now a button "Ignore All this Session". The exception class name is now also a regex. Empty matches any exception. (* I'm not sure this really carries the meaning of the German joke "Auf vielfachen Wunsch eines einzelnen Herrn ..." )
  12. Backup/restore of a remote git repository is simply backup/restore of a file system folder
  13. TortoiseHg has a nice interface. When I needed Git last month I installed TortoiseGit but found it didn't seem to have the same type of user interface (I'm no version control expert, so I appreciate a gui for it.) I then tried SourceTree and it seems like a good solution to work with both.
  14. ...see TortoiseGIT ...example before. https://www.google.de/search?q=tortoise+git&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjU-Luqh-HqAhUmNOwKHYBpDDgQ_AUoAXoECBcQAw&biw=1867&bih=964
  15. Several. https://git-scm.com/download/gui/windows
  16. aehimself

    How do you organize developing new features in big projects?

    Modularity is the key. And the beauty of inheritance makes it really-really easy. Since I started to chip my code to as small blocks as possible, separate classes of course; I realized that I started to move more and more of these one-class units to my Framework folder, out of an applications folder. And they simply all work together.
  17. From the other thread FWIW, we don't use the built-in version control integration in Delphi. We tried way back when it was new, but it just didn't work out for us as it didn't allow merges. We use TortoiseSVN, Github Desktop/SourceTree. Update from repository, start Delphi, do the work, exit Delphi, Commit, Merge if necessary. I am a creature of habit, so I have a root checkout folder: C:\src\Programs This contains the branch of my apps that I am currently working on i.e. typicallly trunk in SVN speak, or dev in git terms. C:\src\Programs\App1 C:\src\Programs\App2 C:\src\Programs\App3 C:\src\Programs\Common etc. I also have other versions in separate folders that I update regularily C:\src\Programs.Live C:\src\Programs.Pilot C:\src\Programs.Trunk C:\src\Programs.ThatVersionThatNeverGotReleased If I need to work on f.x. the Live branch, I used the Switch feature in Tortoise to switch the branch in C:\src\Programs. Why don't I just work with the files in their respective check-out folders? Because of Delphi file history. It is so freaking annoying to open a file from the history list and get a file from the wrong folder. With SVN, I commit my changes from C:\src\Programs, and if the changes also should be merged with a different branch, like f.x. Live - I ensure that folder is updated, and merge to it, and then commit it. We are going to make a move to using git for everything, but we are still trying to come up with a robust and easy to use workflow. Git is a little more finickey for us long time SVN users.
  18. Hi... ...in japan they say "harakiri" to that. YES! ...imho not. The features in the IDE are are too little. Better you use other tools like Tortoise for (GIT, SVN) ...what you like. https://tortoisegit.org/ Tutorial: https://www.youtube.com/watch?v=N1KNw1tr47k
  19. David Heffernan

    How do you organize developing new features in big projects?

    Every effective programmer understands the value of revision control
  20. Lars Fosdal

    How do you organize developing new features in big projects?

    We use frames extensively in one of our UI apps, and I've made a FrameTestBench app that has the required plumbing of the main app, but which only instantiates the frame I want to work on. It reduces the compile time a lot. But - as everybody else says - using revision control really is essential. Once the frame "graduates" from the test bench and needs to go into the main app for further testing, I don't want to have that happen in the current live branch since I may need to do fixes in that branch before the new frame is ready for release.
  21. David Heffernan

    How do you organize developing new features in big projects?

    You only feel the need to develop in such an isolated fashion because you don't use revision control. If you had revision control you'd branch and develop your feature. You'd run your existing tests to prove that you had not damaged existing code. Why do you resist using revision control? It will make you far more productive and effective.
  22. Dalija Prasnikar

    How do you organize developing new features in big projects?

    Depending on the feature. If I need to test some general concept and/or feature is not tightly coupled with app I will make separate test project until I figure whether it will work as intended. If feature is tightly coupled with rest of the application I will create new feature branch in that app repository and start from there, even if compiling/running takes time. But, this is what we are trying to tell you, not having VCS is an issue. Because, new feature workflow highly depends on VCS. I know it may seem that learning how to use VCS takes valuable time, but you can get that time back in a week (literally).
  23. Cristian Peța

    Export to PDF speed

    This procedure takes 76% of time in my case 2694 procedure TfrxPDFExport.ExportViaVector(const Memo: TfrxCustomMemoView); and was called because GapY was -1 if (Memo.ReducedAngle <> 0) or (Min(Memo.GapX, Memo.GapY) < 0) then ExportViaVector(Memo) With Gap=0 for some of memo components ExportViaVector() takes 44% of time and the report looks the same but the PDF is generated in 6 seconds vs. 13 seconds Edit: Better take a profiler and don't lose the time guessing.
  24. Lars Fosdal

    Does debugger handle WITH better in latest versions, 10.3+?

    Add a Caption: string to TResult and try again. It will set TResult.Caption to A, and you get no hint or warning that there is a name space collision. Using inline variable declarations - you can eliminate with without a lot of extra code. procedure TForm1.FormCreate(Sender: TObject); begin var r := GetResult; Caption := r.A; end; var p := GetComponent as TPanel;
  25. Arnaud Bouchez

    Buggy Optimizer in Delphi 10.4

    I have written a blog article about this problem. https://blog.synopse.info/?post/2020/07/20/Special-Care-of-Delphi-10.4 Hope the issue is fixed soon in the next Delphi patch - after the holidays I guess. 🙂
×