Edwin Yip
Members-
Content Count
432 -
Joined
-
Last visited
-
Days Won
3
Everything posted by Edwin Yip
-
"duplicates not allowed" error when opening a project
Edwin Yip replied to Edwin Yip's topic in Delphi IDE and APIs
That solved the problem, thanks Thomas! -
"duplicates not allowed" error when opening a project
Edwin Yip replied to Edwin Yip's topic in Delphi IDE and APIs
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? -
Automatically order, download and install SSL/TLS certificates
Edwin Yip replied to Angus Robertson's topic in ICS - Internet Component Suite
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. -
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
-
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
-
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.
-
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.
-
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 :)
-
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.
-
@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 :)
-
Any reservations on using const array[type] of?
Edwin Yip replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Your explanations really does help people to understand this construct! -
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?
-
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 :)
-
firebase FB4D – The OpenSource Library for Firebase
Edwin Yip replied to Christoph Schneider's topic in Delphi Third-Party
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? -
I'm sad but I fully understand.
-
Is there a way to bring codeSite LiveView window to front by code?
-
Bring codeSite LiveView window to front by code?
Edwin Yip replied to Edwin Yip's topic in Delphi Third-Party
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. -
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.
-
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.
-
Berlin and Tokyo slow compared to Seattle
Edwin Yip replied to Richard_Stevens's topic in Delphi IDE and APIs
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 -
Clean Code and Fast Code Slides at EKON 22
Edwin Yip replied to Arnaud Bouchez's topic in Tips / Blogs / Tutorials / Videos
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? -
done: https://sourceforge.net/p/gexperts/feature-requests/47/
-
@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
-
Any way to improve the CodeSite Live Viewer's performance?
Edwin Yip replied to Edwin Yip's topic in General Help
Hey David, the speed difference is HUGE! Thank you so muchhhhhhhhhhhhhhhhhh!