Jump to content

Mike Torrettinni

Members
  • Content Count

    1509
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Mike Torrettinni

  1. Are you referring to this history - in IDE: which is stored in _history folder of source? So, you don't switch this off when using Git?
  2. Good point, thanks.
  3. You are referring to Fossil vs Git, right?
  4. I will look into this one, too. Thanks!
  5. Mike Torrettinni

    How do you organize developing new features in big projects?

    Thank you, David, this was very detailed. I am very well aware how these open debates go, their usefulness and that sometimes is hard to imagine what or why I'm asking, but I would not waste everybody's time if it wasn't something I really question myself about. If you look at some of my questions, you will see a lot has to do about the actual practical application and not theory, as you can read in books. As a single developer, it's often hard to imagine how other developers develop, and one way is with these questions, where I try to imagine every comment how it works out in practice. This is something that, I imagine, makes very little sense to developers who work (or have learned to develop) in teams and have support available within the team - and a lot of times the most useful suggestions come from exactly these developers from teams, because their 'mistakes' have already been noticed and pointed out by others. So, I appreciate every comment. OK, back on topic. Your details give me another point of view, especially: this is true for Frames, for Forms I'm still a little bit hesitant to see them as flexible as Frames.
  6. At least in Delphi 10.2 WITH doesn't work in debugger, meaning debugger doesn't show record field values when hovering over them: with MyRecord do FieldName := 'new'; end' Has this been fixed in later versions, 10.3 or 10.4? Anybody has any info is this ever going to be fixed?
  7. Great suggestions, thanks! How about backups, is it easy to backup the project source, or you need to keep TFS/Git backup? In case computer crashes and I need access to the project sources, before I setup TFS/Git again, can you do daily/weekly project backups, where the full source is standalone and doesn't require TFS/Git to run?
  8. I have it installed locally, I don't even notice it until l use it. But that doesn't mean is light-weight. Does Git have an option for full GUI tools to work with? I would like to avoid command line as much as possible. Every now and then I need to branch and merge 10s of branches a day - in TFS this is a breeze. A customer once showed how they do it with Git and he got confused on feature switch with just 3 branches, it didn't look fun.
  9. Mike Torrettinni

    How do you organize developing new features in big projects?

    You are right! I wasn't thinking that way, until Lars suggestion... then I connected the dots. In some cases is hard to replicate the data from full blown project, to have them ready for new project with just a new feature.
  10. I use TFS 2012 (not for Delphi) and Source Control Explorer (or Microsoft Team Explorer) is very easy to use. Anybody using it, overkill or not enough features for Delphi projects?
  11. Mike Torrettinni

    How do you organize developing new features in big projects?

    As this is quite important topic for me, as it it part of my daily work - new features in existing project, lets recap: I have 3 options for a new feature: 1. Implement it right into the existing project + advantage: you have access to full project framework - disadvantage: when you want to test out a little change in the new feature, like position of controls, the whole project needs to be compiled and run. A lot of time wasted just for simple form view. 2. Start new empty project and develop feature as much as possible on it's own, before integrating into the existing project + advantage: brand new project, fast compile, focused only on new feature - disadvantage: lack of full project framework, can't test dependencies on the full project 3. Have a basic framework project that has all 'plumbing' of the full project as needed, without all the dependencies; integrate into existing project, when ready + advantage: fast compile, have access to some full project dependencies - disadvantage: preparing such basic framework could be a hassle, as each feature could require different parts of full project - possible tweaks in basic framework needed for each new feature Any other suggestions are absolutely welcome!
  12. Mike Torrettinni

    How do you organize developing new features in big projects?

    I just asked admins to move source control posts to the new topic in Tips section. It would be a shame to lose them in this thread.
  13. Mike Torrettinni

    How do you organize developing new features in big projects?

    I like this idea! Yes, this is one of the annoying things I need to always modify what the project does, so it compiles fast, ignores all startup steps that are needed for full project to run, when i just want to test how new form looks like.
  14. Mike Torrettinni

    How do you organize developing new features in big projects?

    Oh, yes, I have it, just not in the 'usual' way, more it looks like manual version control, not full blown product like TFS, Git... which I understand could be considered as if I'm missing something really beneficial, but not everything has to be perfect to be useful, right? I mean I use more and more Pred function (even though it was marked as stupid), I find it useful for my needs 🙂 Thank you, I was trying to get a sense of how I'm approaching new features and if I'm missing something obvious. I'm glad great minds think alike 🙂
  15. Mike Torrettinni

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

    I can't wait to try this out, unfortunately probably in 10.5, not sooner. Maybe they will improve debugging WITH by then, too 🙂
  16. Mike Torrettinni

    How do you organize developing new features in big projects?

    Sorry, I don't understand your comment. Probably is my English and the way I phrased the question: the question is about how to start implementing new feature into existing project, where compiling and running it takes a while, but I just want to focus on feature on it's own, and compile and run it to see if it goes into the right direction. Just what your experience is, do you start new feature within the project or do you create new, empty project and implement the new feature, and once the feature is developed then integrate it into the existing project. Or a combination, or some other ideas. Branching, merging and version control of the new feature is not issue, this is all taken care of.
  17. Mike Torrettinni

    How do you organize developing new features in big projects?

    I'm the only developer, so is not the reason, but I guess excuse, why I don't have real source control, branching implemented. Same for automated builds, all manual. The feature I started working on now, is html report. And is not just dumping data to html, but also playing around with html to create visually 'acceptable' presentation of data. And I know for that I will have to tweak html and css a lot and generate numerous test reports to get the final acceptable report. I think this is perfect for standalone feature, but to use real data I need it implemented in the project. So, I guess i will start with base feature as standalone and then finalize on real data when integrated in the project.
  18. Mike Torrettinni

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

    OK, after you mentioned it (expr), I had to test if function result can be used with WITH, and it works: type TResult = record A,B,C: string; end; function GetResult: TResult; begin // end; procedure TForm1.FormCreate(Sender: TObject); begin with GetResult do Caption := A; end; I never did and never will use it, but interesting to know.
  19. Mike Torrettinni

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

    Aha, OK, makes sense. Everyday something new.
  20. Mike Torrettinni

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

    Embarcadero's code examples are full of WITH usage, so probably unlikely they will deprecate it. Here is example of a double(triple?)-nested WITH usage: http://docwiki.embarcadero.com/CodeExamples/Sydney/en/ActiveControl_(Delphi) I checked a few components source code and search found1000s of occurrences of WITH usage. I didn't even know about WITH ... AS .. DO.: with GetComponent as TPanel do case Index of 0: Result := IfThen(Expanded, 'Collapse Panel', 'Expand Panel'); 1: Result := IfThen(FlipChangeArea <> faHeader, 'Header Click', 'Button Click') + ' can Toggle' ; end;
  21. Mike Torrettinni

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

    I was hoping new LSP would sort this out. Maybe in future updates. Never give up hope on Delphi 🙂
  22. Mike Torrettinni

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

    I don't use it, but I used to, it would be nice to have a working feature we can decide to use or not. But if it's broken, no use for it. Well, even when I used to use it, it would be with single identifier, so most of the time the issue (for me) was the debugger. I never found the use of complicated examples for WITH.
  23. Mike Torrettinni

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

    Thanks! Absolutely! I had an example of a few lines of code using long named identifier and while I was replacing it with short named local variable, I was thinking of WITH, it could be nice to use it in this case. If only the debugger worked
  24. Mike Torrettinni

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

    I can't move from 10.2, yet, so I don't have newer version installed and I was just thinking if they will fix the debugger issue with WITH.
  25. Mike Torrettinni

    Help with string extraction function

    I did some testing on largest real data set: strings: 1,203,265 avg length: 25 standard deviation: 41 longest string: 2,243 All functions take between 100ms-171ms, so all are very fast. Most common real data set is 10%-25% of this largest data, so these functions will perform under 50ms in those cases. My current function that I use does the same things with: if Copy(s, 1,1) = '{'... and result := result + Copy(s, 1,1), so very very inefficient, but it takes about 1,8s on same data. So this is not a bottleneck in my project, but still almost 20x faster is definitely something i will use - I just have to decide which one.
×