Jump to content

Edwin Yip

Members
  • Content Count

    432
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Edwin Yip

  1. That solved the problem, thanks Thomas!
  2. Hi Thomas, no, I didn't. Update 1: Sorry, did you suggesting a solution I should try or did you mean that might be what caused the issue?
  3. Great! on question if you don't mind - are the installed certificates work with ICS only, or also can be integrated with other framework like mORMot? Thanks.
  4. Edwin Yip

    Communication between processes (IPC)

    Also check: Cromis.IPC, excellent, but the author's website's no longer available. https://torry.net/authorsmore.php?id=7711 https://github.com/kami-soft/NamedPipeExchange
  5. Edwin Yip

    Rapid generics

    Does anybody knows if Rapid.Generics suffers the same 'exe bloatness' issue caused by System.Generics.Collections from RTL? refs: https://stackoverflow.com/questions/31684300/do-generic-instantiations-in-multiple-units-bloat-the-executable https://delphisorcery.blogspot.com/2014/03/why-delphi-generics-are-annoying.html
  6. I've been using the GExperts trunk from https://svn.code.sf.net/p/gexperts/code) for quite a long time, and I don't remember since when, the keyboard shortcuts in the Grep Results window no longer works. I most use the F5 (refresh), Ctrl+N (collapse all) and Ctrl + E (expand all) Edit 1: It's under XE4.
  7. Edwin Yip

    'Execution queue' options?

    I discovered SimpleQueue.pas from CommonX recently, which allows you to push a bunch of procedures or closures (anonymous methods) to the queue and they'll be executed in a background thread one by one. As you can imagine, this can have a lot of uses on the server side. The concept is very similar to Google cloud's Task Queue, which I read sometime ago. I especially like that SimpleQueue.pas allows you to add code for execution to the queue via anon. methods, it must be very handy. The issue I'm with it is that CommonX doesn't my XE4 well, and I can understand that and I'm not complaining, but just ask if there are other options of the same kind of 'code execution queue' (not data queues, that we have a bunch of excellent implementations) that I can check out? PS: I know I can change the code, but since CommonX (a lot of useful things in it) has 900+ .pas files and I'm not sure how heavily SimpleQueue.pas depends on the other units, so that'll be the last option, especially I don't need to use it immediately :) Thanks.
  8. Edwin Yip

    'Execution queue' options?

    Thanks PG, BackgroundWorker sounds exactly the solution. On the other hand, it just occurred to me that, I can just create a data queue and a long-living thread to accomplish the task :)
  9. Edwin Yip

    Shortcuts in Grep Results window no longer work?

    I had the issue before the main menu's switched to the "hamburger" menu. Even Grep Results window's not docked, the shortcuts don't work. In the past, once I mouse-click on the window so that it has the focus, all the shortcuts worked. I'm really not sure if the issue's coming from GExperts itself or the other IDE experts, I use all the major experts and I didn't add new experts to the IDE recently, but I keep updating GExperts, CN Pack and Andy's experts.
  10. Edwin Yip

    Omni for Multi Platform?

    @Primož Gabrijelčič Great to hear that! I guess the major part need to change is that OTL uses the Windows messaging sub-system for communication and the non-block thing? Start a crowdfund and I'll support if you have a plan for FPC too :)
  11. Your explanations really does help people to understand this construct!
  12. Edwin Yip

    Pas2js for Delphi

    Checking it out... There is an extra dot in the link to https://github.com/Kryuski/pas2js-for-delphi and will lead to a 404 page.
  13. When in DEBUG mode one of my app generates a log of log entries using CodeSite. The logging process is OK, but the Live Viewer's update is tooooooooo slow - even after the app existed the Live Viewer still took 5 more minutes to finish receiving the logs. Any way to improve the performance?
  14. Edwin Yip

    MMX for Delphi 10.3 Rio

    I know it depends on the decision of the original developer of MMX, actually I want to be able to contribute to the source by adding old version support :)
  15. Edwin Yip

    FB4D – The OpenSource Library for Firebase

    What a great contribution, @Christoph Schneider! Thank you and I'll look at it later. BTW, The reason the min. supported Delphi version is Seattle is because it depends on new features only available in Seatle+ or you don't want to test it with older versions of Delphi?
  16. Edwin Yip

    MMX for Delphi 10.3 Rio

    I'm sad but I fully understand.
  17. Is there a way to bring codeSite LiveView window to front by code?
  18. Thank you all for the comments. I need to activate the LiveView window on a local PC. The situation is when in DEBUG mode, I want to bring the error logs to my attention. For example: CodeSite.SendError('this error is rare to happen but you need to take a look it immediately!'); CodeSite.BringLiveViewWindowToFront; IIRC TraceTools (which I abandoned it due to a deal-breaker issue) has such feature.
  19. Edwin Yip

    Advice on starting to work with databases

    It's real muti-user. When a SQLite db's accessed through mORMot, be it Delphi clients using the mORMot client classes, or any JS, C#, Java clients accessing through Rest API, tens of thousands of users can read/read the SQLite db just like what you do with other db system such as SQL Server. What is a multi-user system if this is not.
  20. Edwin Yip

    Advice on starting to work with databases

    Unless you use a framework like mORMot which turns SQLite into a real multi-user DBMS (I meant real, although it's achieved with threads and locking). Advises for using an ORM - only use ORM (Object-Relation Mapping) for the simple CRUD part, but don't map your entire data model into a ORM. Doing the latter is the root cause of all complains about ORM from all the Java, C# and Delphi programmers. In this regard let me tell you why I LOVE mORMot - it allows you to accomplish simple data operations such reading/saving/updating/deleting a piece of cake, while it does NOT limit you using any SQL features. It's all about balance between a full-fledged ORM and using raw SQL, mORMot provides the best of both world. There is no over-abstraction nor over-engineering in mORMot, but it provides a HUGH foundation for your application - ORM, database, http(web ) server and http client Rest, remote function call, encryption, crossplatform-ready code base (think FPC and Linux), and so on, and so on, wow, unbelievable, all my new programs are relying on it, including an archiving software and a POS (point of sales) software.
  21. Edwin Yip

    Berlin and Tokyo slow compared to Seattle

    Related post: https://forums.embarcadero.com/message.jspa?messageID=934167 And I have just disabled livebinding by renaming all the 4 .bpl files on disk: dclbindcomp180.bpl dclbindcompdbx180.bpl dclbindcompfmx180.bpl dclbindcompvcl180.bpl
  22. Thanks for sharing ab, the slides about server-side architecture is really inspiring! Speaking of 'clean code', I admire your ability to architect the entire mORMot's huge codebase which includes a lot of module, supports a lot versions of Delphi, supports a bunch of compilers on various platforms. And I have a humble advise - do you think the the `with` statement makes reading and debugging harder?
  23. Edwin Yip

    Testing needed

    done: https://sourceforge.net/p/gexperts/feature-requests/47/
  24. Edwin Yip

    Testing needed

    @dummzeuch Can I take this chance to make a suggestion? - In the 'Memo' view of 'Library Path' and the porject options 'Search Path', as shown in @Primož Gabrijelčič 's posted screenshot, two things would increase the productivity: Allow pressing [Ctrl + A] to select all text in the Memo. Even better - to have a 'Edit with external text editor' button, which when being clicked, will open the system's default text editor to edit the search paths. I guess this can be done with something like: save the paths to a temp file with a unique name. use the CreateProcess API to launch the text editor (the system's default one or can be specified by the user in GExperts), open the temp file. After the text editor's closed (IIRC you can can notified with the CreateProcess win32 API), load the modified content from the temp file and put it into the 'Memo' view of the path editor. Sorry for being off topic, I saw PG's screenshot and this idea came up :P
  25. Hey David, the speed difference is HUGE! Thank you so muchhhhhhhhhhhhhhhhhh!
×