Re: [fpc-other] #fpc irc channel
On 4/20/23 15:03, HSN via fpc-other wrote: > Irc is one of the few platforms left on the Internet where there is no phone > number or email required to talk. Yet, I had to enter a valid email address to register for the #fpc IRC channel, and confirm its valid. So there goes that theory of yours. :-) My preference is still good old NNTP (newsgroups). * Doesn't require registration * Doesn't require a valid email address * Users are free to use any News Client they prefer, with the feature they want/need. * History of conversations can be stored forever - no loss of information (the internet is fragile enough already) * Past messages are searchable (an ever growing knowledge base) Hence I've been hosting newsgroups for some open source projects for well over a decade now. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] PostgreSQL index tuning
Hi, Does anybody know if there is a tool I could use to analyse queries to a PostgreSQL database, so I could tune it's performance. eg: detect table scans in the execution plan, suggest creating, dropping or altering indexes etc. MS SQL server comes with loads of tools and options to do this, but I'm fairly new to using PostgreSQL as the data store, so not sure what tools are out there. Any suggestions would me much appreciated. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] Java 25th Anniversary Promotion from Oracle University
Hi, Oracle University is offering a free Java learning subscription and the Java SE 11 Developer Certification Exam for only $25 US. https://blogs.oracle.com/oracleuniversity/java-25-anniversary This offer runs out on 25 April 2021. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] ARM is the future of desktop
On 02/07/2020 5:14 pm, Santiago A. wrote: > Here is an interesting article by a ex-windows boss. He thinks that in a > few years even desktops will be ARM and Intel will be residual. And > obviously it will be a mayor problem to Microsoft, whose software is > very tied to Intel platform. Obviously he would say that - working for Apple. Apple marketing at work. :-D Not just that... Considering that Apple-on-the-Desktop market share is only around 9% (as or Jun 2020). I don't think Microsoft has anything to worry about just yet - sitting at a comfortable 87% market share as of Jun 2020.[1] 1. https://www.netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222019-07%22%2C%22dateEnd%22%3A%222020-06%22%2C%22segments%22%3A%22-1000%22%7D Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] VSCode
On 26/04/2020 2:37 pm, Sven Barth via fpc-other wrote: > It's more lightweight than eclipse. Well that's comparing Apples to Oranges isn't it? Yes originally Eclipse was designed as an IDE for many languages, but it has grown to be so much more - even a platform to base new applications on (similar to VCL, LCL etc). Granted I haven't played much with VSCode, but considering it is built on the same foundations as Atom, Sublime Text... ie CSS/HTML engine, they are quite resource intensive. But then I guess I'm comparing them as pure text editors in the lines of EditPad Pro, Vim, gEdit etc that uses a fraction of the memory (one example of resource usage) to load the same set of files. eg: The last time I tried Atom (2 months ago) it used 380MB to load a set of 10 large Java files. jEdit used 180MB and EditPad Pro used 18MB. Vim was something like 8MB - lol. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] tiOPF is looking for a new project maintainer
On 30/05/2019 8:09 pm, Anthony Walter wrote: > What about fpGUI? Are you going to hand that project off as well? No, I still have some features I want to implement and get the "develop" branch into a more stable state for a v2.0 release. Plus I have many fpGUI based applications I will still continue to maintain, as I use them on a daily basis. Somewhere in the future I'll re-evaluate my plans, but for the foreseeable future I'm enjoying fpGUI development and experimenting with new ideas and widgets. I obviously welcome more community support and contributions for fpGUI, and if I see somebody with the necessary skills and drive I'll happily offer them commit access. At the moment I'm only looking for a new tiOPF maintainer/leader to take that project further. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] tiOPF is looking for a new project maintainer
Hello everybody, I have really enjoyed working with tiOPF for 15+ years and have written tons of database and non-database applications that used tiOPF. It was also the project that introduced me to Design Patterns and Test Driven Development, and I'll forever be grateful for that. However, due to the decline in Delphi/Object Pascal popularity for paid work (at least here in the UK), I've moved full time to another programming language. With that, I feel it is time to hand over the reins to someone else that still uses Delphi/Object Pascal on a daily basis. So if you feel up to the challenge and don't want to see a great project become abandon-ware, please let me know. I'll keep running the support newsgroup - I have no intention in stopping that. I'll also continue running the daily/hourly unit tests for tiOPF as it is fully automated anyway. I'll also still be around to answer questions, but will be moving away from maintenance and new development work for tiOPF and tiOPF related utility applications. So if you have any interest in keeping tiOPF alive, please contact me here or in private. ps: If I've done it correctly, all replies should go to the fpc-other mailing list. Regards, - Graeme - -- My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] To nest or not to nest
On 07/05/18 08:59, Santiago A. wrote: > 1) In OOP, they save me jumping to the interface to declare things. That's what I love about Java (compared to Object Pascal and C/C++) - no header required. Makes the code so much simpler, and I can drag and drop to reorder methods as needed. Anyway, I think Lazarus IDE can automatically declare methods for you in the interface section - I think. > 2) It shortens bodies, so they can fit in a screen. > 2) It allows me declaring objects near to where they are used and easily > encapsulate variable names. > 3) They save a little of stack. Overall, it's your preference. At least the good thing is, your are breaking up large bodies of code into smaller chuncks. That's a good thing. Alternatively, I'll create a class that does all the work I need. That also makes it easier to unit test. > The cons: Most tools are not very nested routines friendly. Debuggers > have problems with them, code tools are not aware of nested routines. I know for a fact the Procedure List functionality (Ctrl+G) does support nested methods. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] FPC and Lazarus git repositories
On 24/06/2018 15:54, Victor Campillo wrote: > Graeme, could you check the issue? I was rebuilding my server over the weekend (hardware and reorganising storage), so only bare minimum services were running for the last few days. The task was completed today and everything is back to normal again. I can confirm the Git mirror repos syncing again. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] M$ has bought GitHub
On 2018-06-06 10:25, Marco van de Voort wrote: > Actually Microsoft is quite a large cloud provider, As the saying goes "There is NO cloud - only somebody else's computer." My personal opinion: Why must I store my data and my applications on somebody else's computer - often regulated by different laws to where I live. No thanks! I'll keep control of my own data and applications. Others surely have their own thoughts on that. Do with your data and apps as you will - so will I. Just a thought. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] M$ has bought GitHub
On 2018-06-05 22:36, Stéphane Aulery wrote: > already install a basic git service with a web server and tools of your > choice for a limited effort. Exactly, a one line command is all that is required to give read-only access to public repositories. The system stays idle when nobody is cloning repos, so even suitable for a RPi install. ;-) Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] M$ has bought GitHub
On 2018-06-07 09:01, el es wrote: > If you have time to manage your own hosting server* AND do the programming > work > AND have life/hobbies/family outside of work... wow... for others in many > cases > it's more like 'choose any 2' choice. Like I said, I already have a public facing server in place. Adding public read-only git repos to the mix is two simple steps: 1. Run 'git daemon' to give users read-only access via the git:// protocol, which by the way is the simplest option and way faster that via the http:// protocol. It's a single command line to make multiple repos available. https://git-scm.com/book/en/v1/Git-on-the-Server-Git-Daemon 2. Open port 9418 on your firewall. Job done. Like I said, there is NO need for other services, tools, user access and all that fuss. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] M$ has bought GitHub
On 2018-06-05 20:45, Michalis Kamburelis wrote: > Or you can move to GitLab, which offers similar features in many ways. Why. Git is a distributed version control system. I really don't need a 3rd party hosting provider when I can do it on my own public server. https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows#wfdiag_b My Git workflow is already like that most of the times and for many of my projects. > Personally, I'm "cautiously not panicking" :) Yeah, just like how M$ f**ked up Skype in more ways than one - and dropped Linux support for good measure. No thanks! Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] M$ has bought GitHub
On 2018-06-05 20:19, Marco van de Voort wrote: >> owned and run my four companies: Apple, Google, Microsoft and Facebook. > Well, there is always Amazon and Oracle :-) Oh God, yes I forgot about those. Amazon is also spreading its tentacles everywhere and with microphones (smart speakers) planted in every other home. What is this world coming too? Everybody so eager to loose their freedom and privacy. Seems Richard Stallman was right all along. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] M$ has bought GitHub
On 2018-06-05 20:22, José Mejuto wrote: > Try GitLab... And who is going to buy them when they are big enough. No thanks. I've made up my mind. I'll be hosting my own Git repos from now onwards - I already have the infrastructure in place (currently hosting web servers, NNTP server, a mail server and such). After all, Git is a "distributed version control system" and pointing existing local repos to a new remote server is a single line command. My day-to-day work and impact of how I work will be zero. I'll simply switch from a "Centralised Workflow" (aka GitHub, SourceForge) to a "Integration-Manager Workflow". I already do that a lot of the time any ways. https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows#wfdiag_b Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] M$ has bought GitHub
News just in M$ has bought GitHub. https://news.softpedia.com/news/microsoft-takes-over-github-521380.shtml What a sad day it is. It seems that one day the whole Internet will be owned and run my four companies: Apple, Google, Microsoft and Facebook. I guess I'll be doing what the Free Pascal project has done all along... Host my own repositories and bug tracker. Less sh*t and in full control or my work. I've had plans to move many of my projects off SourceForge to GitHub because of SourceForge's performance problems and frequent outages. Now that plan will NOT happen and I'll most likely start hosting my own public repositories instead. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] Ergodox keyboard layout for Delphi/Lazarus developers
Hi, I thought I would share my latest Ergodox keyboard layout. The default layout is Dvorak on the base keys, but QWERTY is available on layer 4. So it works with both. The surrounding keys and layers are well tested with Delphi and Lazarus shortcuts - all with minimal finger stretching and maximum comfort. I can even control my mouse from the keyboard (not that I use that much). :-) Enough talk. As they say, a picture is worth a 1000 words. http://configure.ergodox-ez.com/keyboard_layouts/qmnpyg/ You can download the HEX file from the above URL as well as print nicely layed out pages of the whole layout. You can also click on the "Clone" link to customise it for your personal needs - that's if you own a Ergodox (highly recommended). Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Firebird vs PostgreSQL
On 2017-10-28 13:34, Mark Morgan Lloyd wrote: One of the (numerous) things I'm wrestling with at the moment is PostgreSQL replication... Speaking of PostgreSQL, I just realised that tiOPF’s 3-hourly unit test runs don’t include tests against PostgreSQL. I’m busy setting that up now. This morning I read through some PostgreSQL documentation, and some of the SQL syntax is pretty nice. I do curse the fact that they too (like Microsoft SQL Server) supports XML field types. I so *hate* the usage of that at work. In two companies I’ve now seen the XML field types being used as the “lets dump everything in there because we are too fucken lazy to implement real database design”. It is so hard to find information when they are hidden in XML fields, and also makes SQL queries 10x harder. Obviously it also means your application is not portable to other relation database servers. Vendor lock-in yet again! I curse the person that came up with the XML field data type concept!! Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Firebird vs PostgreSQL
On 2017-10-28 11:26, Mark Morgan Lloyd wrote: I've suggested that different servers have different areas of applicability, I better mention that I replied before I saw your list of reasons for using PostgreSQL. Apologies if I upset you. Chill please - no "holly war" was intended. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Firebird vs PostgreSQL
On 2017-10-27 10:17, Mark Morgan Lloyd wrote: I think that a reasonable approach is to select Postgres for departmental or larger storage, or Firebird for something that's strictly local. Once again... why must Firebird always be reduced to the “only for smaller database needs” environments? That is exactly the point I was trying to make with my earlier reply. I’ve used Firebird in very busy production (Enterprise) environments with large amounts of users hitting the database server, and with large sets of data stored. Firebird performed fantastically well. So I really don’t see the need to reduce Firebird to only “smallish” environments. Firebird is a very well rounded database server, and the latest version introduces so very welcomed new features. What Firebird is lacking is a really good "management studio" style application. FlameRobin is currently filling that space, but I definitely see space for improvement (tracing and profiling, some graphs explaining the results, graphical execution plans of queries etc). Maybe this is a good business opportunely for somebody to venture into. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Firebird vs PostgreSQL
On 2017-10-27 11:04, Santiago A. wrote: Why Postgres is better for "departmental or larger storage"? What has Postgres that Firebird hasn't? Exactly. In my years of using Firebird, I think it is a perfect fit for small and large environments. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Firebird vs PostgreSQL
On 25/10/17 18:22, Santiago A. wrote: I have some complains, but the overall feeling about Firebird is very positive. It is a handy and powerful enough for almost everything . In fact, I still have some production server running with no problems for years. I've used Firebird for the last 10 years in various companies. Databases ranged from 100's of MBytes to multi TeraByte databases. The latter contains lots of data, not necessarily tons of binary blob data. Firebird performed brilliantly throughout the various projects I used it in. I simply can't fault the database server. The fact that it is so easy to install, maintain, backup and even use in read-only or embedded environments is a massive plus point. Oh, and I've access Firebird from Free Pascal, Delphi and Java based projects - all with equal ease. I have tried a little PostgreSQL, it looks powerful and has good reviews and has features that firebird hasn't, some of them very interesting like replication. I have heard good things about PostgreSQL too, and once installed it under Linux, but never really used it. I did do a couple of speed tests (that could run under various RDBMS's) and PostgreSQL did not perform very well out-of-the-box. Apparently you need to tweak it first before it performs decently. But this was some 6 years ago, so I don't know if things have improved since. I do know PostgreSQL does have some Enterprise style features like replication - not sure if there is anything else included too. Nevertheless, I've heard that windows is not its natural habitat. I have heard the same, but never tried PostgreSQL under Windows. I have run Firebird under Windows, Linux and FreeBSD with great results. Apparently Embarcadero's Interbase database is pretty terrible - I've only heard bad things about it. And no Firebird and Interbase don't have common code any more. Firebird was totally rewritten pretty soon after the original Interbase code was released. Yet the network protocol and API's was kept the same for compatibility. Speaking of network protocols. Apparently the latest Firebird has a very much improved protocol that gives a much higher network throughput - I personally haven't tested it yet. Comparing Firebird to MySQL All I can say is I really don't know why Firebird isn't more popular - it is brilliant. MySQL on the other hand is absolutely ridiculous!!! I explained all my reasons many times before in the Lazarus Forums (eg: One simply example is MySQL's reliance on the file system it is installed on and that can (and does) determine if the database table names are case sensitive or not. So don't ever move from a Windows MySQL install to a Linux MySQL install - you'll shouldn't be surprised if your applications stop working). Anyway, I also like the fact that Firebird databases are really compact compared to SQL-Server or PostgreSQL databases which contain the exact same structure and data. Some will argue the opposite fact though. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Object Pascal Interface Delegation, but in Java
On 2017-09-10 00:31, Marco van de Voort wrote: And you don't risk forgetting adding a method to existing classes Java will give a compilation error if you do, so nothing to worry about there. always a risk with manual workarounds like the codegeneration tools that assume everything is designed at once top-down and only then implemented. Eclipse allows you to run the "wizard" multiple times and will add and remove code depending on what you ticked and unticked. Eclipse's code generation is very impressive. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Object Pascal Interface Delegation, but in Java
On 2017-09-09 18:17, Graeme Geldenhuys wrote: I'm sure Eclipse must have that code-generation functionality built-in or an add-on that can do that. And my guess was correct. :) In Eclipse select "Source -> Generate Delegate Methods". Select the field variable that will do the delegation. Eclipse fully implements all (or selected) methods of delegate member as delegate methods. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Object Pascal Interface Delegation, but in Java
On 2017-09-09 17:39, Marco van de Voort wrote: That is often called delegation, and if you search for java and delegation, it seems not (which is not THAT surprising IMHO): Thanks Marco. So it is actually similar to Object Pascal where you use object composition, but with Object Pascal's "implements" keyboard the interface is automatic in the new class's interface. Where-as with Java you have to define the interface and then delegate the calls to the composition object. I'm sure Eclipse must have that code-generation functionality built-in or an add-on that can do that. So Object Pascal is just a bit more convenient, but the end-result (functionality) is the same in. Thanks again for your input. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] Object Pascal Interface Delegation, but in Java
Hi, Does anybody familiar with Object Pascal and Java know if Java supports something similar to Object Pascal's Interface Delegation "implements syntax" functionality? Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Who actually invented open source?
On 2017-08-20 23:08, nore...@z505.com wrote: The true inventors of open source?? Mathematicians, or scientists? Science is shared publicly and openly too.. You make a very good point. Hence I also don't believe in Software Patents - they are just evil sh*t that prohibits software development. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] homepage - no foundation link
On 2017-08-20 22:15, nore...@z505.com wrote: Because the freepascal project is run by A.I. bots, not humans... :-D Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] OS/2 support and text colors
On 2017-07-20 12:46, Tomas Hajny wrote: However, I'd like to remind you that standard OS/2 dialogues may be modified using the Font Palette, Color Palette, etc., using drag and drop And and awesome feature it is - which I used frequently when still used OS/2. The drag-n-drop ability of most (if not all) OS/2 applications were just awesome! No other OS came close. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] OS/2 support and text colors
Hi, Not strictly FPC related, but I know here are some OS/2 software developers around - and I have no idea where else to ask. I'm working on supporting OS/2 in fpGUI Toolkit and creating OS/2 themes. Looking at some of the OS/2 screenshots I have collected, I noticed that in the same dialog you sometimes have blue text and sometimes black text. Anybody know why, and what is the difference between the two (other than the color alone)? Here is an example: http://geldenhuys.co.uk/~graemeg/os2_screenshot.png The only pattern I can see is that "static text" (eg: labels and groupbox captions) use the blue text, but Checkboxes, Buttons, Menu Items etc use the black text. I still don't understand IBM's reasoning behind this though - but would like to know out of curiosity. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-06-07 07:02, Bo Berglund wrote: So time stamp handling is not that important really it's just that I observed the difference when comparing the GIT version of a project Fair enough and a good observation. Git stores such "metadata" like author name + email, authored timestamp, committer name + email, commit timestamp, commit message etc in the Git repository. File systems alone obviously can't handle such information. You can obviously query the Git repository for that information and because Git history is all local, it is very fast to retrieve - unlike SubVersion, TeamCoherence, CVS etc. that must query a remote server over TCP/IP. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-06-07 08:24, Giuliano Colla wrote: One of the important things of programming, both for economical reasons and for better quality, is to be able to reuse code modules. Strange that in my 25+ years of programming I have never needed that. Somehow I always managed just fine, and relied or more reliable sources of information for version control and reusable code modules. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-06-06 11:30, Giuliano Colla wrote: This is one of the down sides of GIT: it doesn't preserve timestamps. You are the second person I hear say that. Why is preserving timestamps important? What use is there for it? Git already tracks the commit date/time, authored date/time and other metadata - all available in the Git log. Those are git log metadata. But Git really only tracks file content changes over time - that is the important bit everybody needs. Git doesn't even track directories - only file content changes are tracked, but even with only that information, Git is clever enough to track file renames and movement of files between locations in the repository. I honestly see no need for timestamps. If mean for things like a compiler should detect when files are changes - well, compilers should check for the content of file changes (via checksums or CRC etc). Timestamps can be spoofed or changed without the contents of the file changing - thus totally pointless. Then there is things like daylight savings time, timestamps across timezones etc. All things that could affect timestamps, but not the content of a file. So Git is right by not bothering with file timestamps - query the git-log instead. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-06-06 09:40, Bo Berglund wrote: It seems like GIT does not like the fact that in CVS only changed files can be committed thus revisions of files evolve on a file by file basis. So when a CVS tag operation is performed the tag is applied on all of the files in the current state. This means that a CVS tag contains files at different revision levels and apparently this is something GIT does not like. I think Git is trying to make something good out of a bad situation. I wouldn’t blame git if it didn’t get things 100%. The way CVS and TeamCoherence (which was an improvement over CVS too) all applied revisions per file only, instead of a whole “repository state snapshot”. That behaviour was very pre-historic, [and personally] a terrible design. You could never get a decent snapshot of all files in the repository at a specific point in time. That was one of the major new features and improvements that even SubVersion introduced. So it tries to "fix" this by making fake commits or something similar. I guess it’s trying to fix a “hack” with a hack. ;-) I can go elsewhere and clone the created repository at which time I am getting the HEAD revision checked out. Relevant files compare fine Perfect. except they are not the correct timestamp. Git only tracks file contents, and some extra commit related metadata. Timestamps are really irrelevant when it comes to managing file content changes over time. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-06-04 23:12, Bo Berglund wrote: Why is the repo in this condition? And what to do about it? Obviously going over it with git reset HEAD ... isn't really practical since this example project (an Android App) contains deeply nested folder trees with hundreds of files. Like I said, I have no experience with CVS or covertions from CVS-to-Git. 1) I suggest you start with a 'gitk --all' and see how the history of your repository looks like, and if there is any history at all. 2) You don't have to reset each file one by one. You can do it all in one go with: git reset --hard But why all your files are marked for deletion is a mystery to me. 3) This is never mentioned in ANY repository conversion guides, but something I ALWAYS do. After you ran your automated migration to Git, I would use a comparison tool (eg: Beyond Compare) and compare a _clean_ original repository against the newly migrated Git repository. Do a new checkout of the original repository (CVS, Subversion etc) to make sure it is clean and you know it is the latest code from the server. Technically there should be NO differences, but on the small chance that there is, now is the time to see the differences and commit those into Git so you know going forward both repositories have the exact same state (at the time of migration). Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-06-02 00:00, Bo Berglund wrote: The beauty of this is that we do not need to duplicate common functionality between projects as would be the case if we *copied* the common files into the source folder. These files are used in many places but versioned in a single place on the server. Yes, Git has that functionality too. It is called "submodules". Common code can live and be maintained in it's own repository. Other repositories can than link to that repository. https://git-scm.com/book/en/v2/Git-Tools-Submodules https://git-scm.com/docs/git-submodule I have used this often. If you clone a repository that makes use of submodules, all the information is already there (stored inside the repository). The first time you clone such a repository, it will not automatically fetch the files from the submodule. You need to run (only once) the 'git submodule init' command. Then every time you want to update the "common/shared code" you run 'git submodule update'. The Pro Git chapter explains it very well, and it is actually quite simple to setup and use. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-06-01 08:54, Bo Berglund wrote: Even though it now works it would be intersting to know *why* I had to log off and back on for it to use the path ... It seems quite clearly that the PATH doesn't fully take affect (in all sessions - it definitely doesn't in existing open sessions) until you log out and then back in. Knowing *nix systems, there must be a way to reinitialise your already open sessions with the latest config info - but it escapes me now on how that is done. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-05-31 08:33, Lukasz Sokol wrote: TortoiseGIT also lets you create a 'bare' repo. I don't disputed that, and I don't mind others using gui front-ends to git - as long as they know they are seriously limiting their abilities and functionality of Git. I have reviewed a lot of Git GUI front-ends in depth over the years. In every single case they lagged behind Git command line interface features or couldn't do some of the more advanced functionality. And more often than not they got confused about the state of the git repository. They were also always slower to use than the command line interface. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-05-31 16:10, Bo Berglund wrote: The apt-get version of the git I use now is: ~/ $git --version git version 2.1.4 Yeah, that is a rather old version. The latest is v2.13. $ git tag will show all tagged releases. Just look for the latest one. You can also use 'gitk --all' and see what the "next" branch follows on from. In the Git project, the "next" branch is what will become the next release. So simple checkout "next" or if you want a mare stable released version, checkout the v2.13 release. git checkout v2.13.0 (git will mentioned you have a detached HEAD, but that doesn't matter, it just means you don't have a local branch that matches that release commit.) Is it not påossible to put docs and info below the ~/ dir? According to the INSTALL file on the subject of Git install it says: Yes, it works like most Makefile based environments - and is also mentioned in the INSTALL file You need to specify the install prefix directory. $ make prefix=/home// Or whatever you want the install prefix to be. As for building the Git documentation. Yes, that has extra dependencies, and from memory takes quite long to build. But the process is very similar to building the Git binary itself. All the instructions are in the INSTALL file. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-05-31 09:58, Bo Berglund wrote: Aplogies if my postings are a bit longish, You are like me then. :) I try to write shorter messages, but often fail. Access via http would probably be the simplest way to manage I believe. I actually found Gitolite the simplest (which uses SSH and manages its own user accounts and access) - independent of the operating system user accounts. So I highly recommend you look into that. The Git Daemon is also very very straightforward, but doesn’t offer much in the form of security. I try not to use HTTP for Git if I can - it’s the slowest protocol for use with Git. It’s like fitting a square peg in a round hole. With a big enough hammer it WILL fit, but not ideal. ;-) I also build my FPC/Lazarus installations from svn sources since a couple of years. But only on Linux, I have not tried it on Windows yet. I use near identical scripts on both platforms. So not any more difficult. build myself then? Is it possible to get the GIT sources without GIT? Yes, FreeBSD’s Ports system does that. It downloads a *.tar.xz archive of the latest release, then builds it locally. When woking on multiple platforms like Linux, Mac and Windows there has always been a struggle to get source code line endings compatible with the platform. Windows uses CR-LF, Mac uses CR and Linux uses LF and in some cases if this is wrong the sources will not work. I believe the default behaviour is for each platform to have native EOL styles, after you cloned a repository. Internally, git stores files in a set EOL style (Unix-style I believe) on all platforms. But some people like Linus Torvalds will tell you that technically a SCM system should *not* modify files at all, so that what you put in is exactly what you’ll get out. Git obviously supports this model too. Now I have read a bit about GIT and it really looks like it checksums whole files with a 40 char hash, which is used as the key to the files. This would make the exact same file (content wise) on Linux and say Windows appear different with different hash values unless there is some mechanism in GIT that handles this. Git handles that, and there will be no difference between that same patch being applied under Linux or Windows. The commit SHA1 should be identical. Git magic I guess. ;-) And how does one specify the type of file to put in GIT? I want to keep also some binaries there, but these invariably contain CR, LF and CRLF byte combinations that MUST NOT be changed when moving between platforms... You can create a ".gitattributes" file in the root of your git repository. You can then specify which files should be treated as binary data, which diff algorithm should be used, and which files should have specific EOL styles. See the fpGUI repository as an example. ===[ .gitattribute ]=== # Set default behaviour, in case users don't have core.autocrlf set. * text=auto # Explicitly set some EOL styles and preferred diff style *.pas text diff=pascal *.lpr text diff=pascal *.pp text diff=pascal *.inc text diff=pascal *.txt text *.xpm text *.ods diff=odf *.odt diff=odf *.odp diff=odf # declare files that must always have specific EOL style *.dez text eol=crlf # True binary files that should not be modified (just for safety sake) *.jpg binary *.png binary *.bmp binary *.inf binary *.INF binary *.zip binary *.res binary *.tar.gz binary *.wav binary *.pdf binary === Since we have not used CVS in any complex way (but we do use the CVSNT flavour on Windows), I assume that the repository files would be possible to convert into the GIT format. After all each file contains a history with commit messages, timestamps, tags and branches, which are all OK. I haven't used CVS in over 20 years easily. I know there is a CVS-to-Git conversion support, just like there is for SubVersion, Mercurial and Perforce, but I've only [personally] done SubVersion conversions. I unfortunately don't know the details of what you ask. I'm sure a Internet search or the Git man pages will help you further. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-05-30 22:19, Bo Berglund wrote: Since my local system is a Windows 7 laptop I have to resort to an RPi to get the Linux system for which the commands are native... Git is native on all supported platforms now. mkdir /data/myremote.git cd /data/myremote.git git init --share --bare . When you install Git under Windows using the official installer, it includes Bash Shell integration and a shortcut on the desktop. So the above commands will work as-is on Windows too. But you can obviously run a non-Bash shell/console under Windows. Then simply replace the Unix-style paths with Windows variants. The git-init command stays the same. So this should not be created inside some user home then? You can create Git repositories wherever you want and have read/write access. My "/data" path is simply by 8TB ZFS data pool, where I do all my work and store all vital data. You can use your $HOME directory (whatever that translates to on your OS) just as well. If you are going to share your Git repositories stored on your system with the public, then better make sure you set up your system's file permissions correctly, or use a dedicated "shared location" on your system. Alternatively don't make your laptop or desktop directly accessible to the public on the Internet, instead push your repository to a public and secure server somewhere (eg: Github, SourceForge etc). You mentioned you wanted to play around with Git and get to grips with it - hence I suggested a local setup without the need of a RPi or some other device. I have read a few chapters on-line, including installing git using the command: sudo apt-get install git-all which (of course) differs from the commands I have found in various other how-to pages concerning git... The Linux distros are to blame for that - more specifically ther incompatible "package management requirements". I always install git from source code and compile it myself (like I do with FPC and Lazarus too). Everything is then included - as it should be. Linux distros f*ck everything up and split it into multiple packages. eg: git-core, git-base, git-gui, git-subversion, git-docs etc. G*d damn ridiculous if you ask me! I would very much like to have a PDF copy since I usually find that easier to read than using on-line webpage versions of books. Could not find the PDF though... I just had a look. The links used to be on the Table Of Contents page, but for some odd reason they aren't there any more. No stress, The Internet Archive always comes to the rescue. This is how it used to look like around 01 March 2017. http://web.archive.org/web/20170301183218/https://git-scm.com/book/en/v2 The individual eBook downloads from that page still works though. PDF: https://progit2.s3.amazonaws.com/en/2016-03-22-f3531/progit-en.1084.pdf ePub: https://progit2.s3.amazonaws.com/en/2016-03-22-f3531/progit-en.1084.epub Mobi: https://progit2.s3.amazonaws.com/en/2016-03-22-f3531/progit-en.1084.mobi HTML: https://progit2.s3.amazonaws.com/en/2016-03-22-f3531/progit-en.1084.zip Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-05-30 06:53, Bo Berglund wrote: OK, I did not have in mind to use an RPi3 as the final system. I just wanted to acquaint myself with GIT using a small portable unit over the summer. In that case, you don't even need a RPi... Simply practice by doing the following on your local system: mkdir /data/myremote.git cd /data/myremote.git git init --share --bare . You just created your remote [bare] git repository. The term "bare" means that there is no checked out files. If you view that directory it simply shows all the normally hidden files that git uses to manage a repository. Now for your working repository where you will do you day-to-day commits: cd /data/devel/ git clone /data/myremote.git/ mywork You will now have a Git repository in /data/devel/mywork/ which is a clone of the /data/myremote.git repository. It as automatically set up the "origin" as your Remote Git Repo. So if you to a git-push, the data will go to "origin" Now playing around in this "mywork" repository. Create commits and branches. Then do a git-push and magically you will have updated the "origin" remote git repo too (which in this case is /data/myremote.git/) What you learn here, is exactly how you would do things with a real remote repository. I highly recommend everybody interested in using Git reads the free and open source "Pro Git" book [https://git-scm.com/book/en/v2]. It is available online or offline in various formats (PDF, ePub etc). Is is well written, fast to read and with tons of real-world Git examples. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-05-29 12:00, Bo Berglund wrote: Is there a good way to set up an RPi3 box as a GIT server and get going with that? Can GIT work in a way that would be comparable to CVS regarding concurrent development etc? Any suggestions on where to start? Git doesn't require a "server" - there is no "git server" like you find with CVS or SubVersion. Gitolite is a very fast and simple solution to get a shared Git environment up and running in the traditional client/server model that CVS and SubVersion users are used to. A true distributed environment will have no single "server location" of the source code. There is a Git Daemon that can be run on Unix or Windows systems. But this is in essence just to supply you with access to a Git repository via the much more efficient git:// protocol, instead of abusing the http:// protocol. The recommended way to access a Git repo is via SSH (which Gitolite also uses). You supply you public key, and don't have to bother with usernames and weak passwords. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] GIT versioning server on Raspberry Pi?
On 2017-05-29 13:01, Mark Morgan Lloyd wrote: I'd use something like an HP Microserver with at least mirrored discs, Yes the HP Microservers are excellent! I highly recommend them, and they are cheap as chips - so a real bargain. I would load it with good NAT/Server style disks (eg: Western Digital Red disks) and a small SSD boot disk (or even a USB stick). Run FreeBSD or Linux with ZFS in RAID-z1 or RAID-z2. Like I said is some other thread, I wouldn't trust my data on any other file system again - only ZFS for me! A all-in-one easy to set up system is FreeNAS (which comes standard with ZFS) and includes other since things like easy directory sharing via FTP, HTTP, NFS etc. All managed via a simple web interface. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Felipe: Java and multi-threading
On 2017-05-26 15:56, Graeme Geldenhuys wrote: Attached is the corrected version of your sample application without the volatile keyword. It is worth noting that using volatile is faster, but also has its limits (ie: you can't protect a whole block of code or actions). To add to this, there is also a memory access effect between volatile and synchronize. For a detailed explanation, take a look the marked "correct answer" in this StackOverflow topic: https://stackoverflow.com/questions/3519664/difference-between-volatile-and-synchronized-in-java Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Felipe: Java and multi-threading
Hi Felipe, > This simple program never ends if you delete the volatile keyword (I > tested here in Windows): Yes, I got the same behaviour as you, using Java 1.8 under FreeBSD. But I immediately saw your problem. You are accessing the same data from more than one thread. That has always been a big NO-NO in any programming language. Using the synchronized code blocks to protect the common data or actions being executed I get this as output. [threads]$ java FelipeTestThread Thread 2 finishing Thread 1 finished. Counted up to 2205390 [threads]$ It works, just like it does when the "volatile" keyword is used. Attached is the corrected version of your sample application without the volatile keyword. It is worth noting that using volatile is faster, but also has its limits (ie: you can't protect a whole block of code or actions). But the bottom line is, you tried to access common data from multiple threads, without trying to protect that data. Not the way to go! Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp class FelipeTestThread { //volatile keyword not needed any more private boolean running = true; public void test() { // thread 1 new Thread(new Runnable() { public void run() { int counter = 0; while (isRunning()) { counter++; } System.out.println("Thread 1 finished. Counted up to " + counter); } }).start(); // thread 2 new Thread(new Runnable() { public void run() { // Sleep for a bit so that thread 1 has a chance to start try { Thread.sleep(100); } catch (InterruptedException ignored) { // do nothing } System.out.println("Thread 2 finishing"); //running = false; stopRunning(); } }).start(); } public static void main(String[] args) { new FelipeTestThread().test(); } public void stopRunning() { synchronized(this) { running = false; } } public boolean isRunning() { synchronized(this) { return (running == true); } } } ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] What makes a Compiler project (like FPC) special?
On 2017-05-25 19:48, Florian Klämpfl wrote: We try to keep fpc layered and everything, nevertheless, the unit dependency graph looks terrible, see attachment Thanks for the information Florian. Just curious, what tool did you use to generate that graph? Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] What makes a Compiler project (like FPC) special?
On 2017-05-25 22:04, Marco van de Voort wrote: There are no narrow interfaces that are natural seams for modularization inside the compiler. Yet the “packages” and “rtl” directories is just that - which by the way is part of the FPC project. And that is also where most commits have been going - based on the history I queried for the last 4-6 months. And then in the “compiler” tree their is the nice natural seams for various platforms and cpu types - after all, you guys worked so hard to make FPC 2.x more modular and maintainable compared to the spaghetti mess of v1.x. Anyway. I'll keep thinking happy thoughts. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] What makes a Compiler project (like FPC) special?
On 2017-05-25 19:47, Nikolay Nikolov wrote: The answer is: much higher complexity and much tighter coupling between the different components. Everything depends on everything, basically. And all of that's caused by necessity, not by bad design, because the task you're solving is very complex. Ok, so the complexity is in the project code (I never argued or disputed that). Many projects have complex code and dependencies - not every project is a simple desktop app. eg: You wouldn't believe how complex Mortgage Brokerage applications can be. The business logic is insanely complex with exceptions to every rule. FPC or any other compiler is not that "special" then - it's like any other complex project. So what is Florian going on about regarding workflow and Git not being able to cope in a "compiler" based project? He made it out as if FPC will not be workable in a Git managed environment. I don't see his analogy. The Linux Kernel running on more platforms than FPC does, is just as complex a beast, if not more - considering that the Linux Kernel probably has 10's of millions of lines of code, 2000+ contributors. The same could be said for the KDE and Qt framework. The latter runs on just about every platform out there, as multiple rendering engines, font engines, theme engines, layout engines etc. ps: Just to be clear, I'm not pushing Git here - I know you guys will not change - Florian made that very clear. But Florian's statements just bugged me, and I see no proof to convince me otherwise - a compiler is just a complex project. Nothing "special" as he claimed it to be. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-25 15:34, Sven Barth via fpc-other wrote: a core dev). Though we'd need to implement such restrictions anyway no matter what we choose for the repo hosted on our own server... Gitolite is brilliant at directory level, file level, branch level, site level permissions, private branches support and more. It's very flexible and uses git to configure itself - so config changes and new repo setups can be done remotely, and as soon as you do the push the server is updated and repos are created. http://gitolite.com/gitolite/ It is also very simple to install and set up. Also a under 5 minute job. ps: I just thought I would point out that a web interface (Github, Gogs and others) are not the only way to do pull requests. In fact, pull requests via a email message is much more informative and easier for other person to review. This is built into git. For more information see: $ git help request-pull So you guys might want a daemon that scans the fpc-devel and fpc-users mailing lists too. That's if you want to cover all bases. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] What makes a Compiler project (like FPC) special?
This is directed at Florian primarily, but any other FPC core member is welcome to chip in. Since Florian mentioned that a compiler project is "rocket science" [not his direct words, but he hinted at that] and totally different to any other software project... It has really bugged me... Why is it different, and What is different? From the recent comments in this mailing list by Sven, Marco and Karoly I got a bit more insight... mainly things like CI (continuous integration) and automated builds and test suites, testing on various platforms etc. Still, that doesn't make a compiler project that special to me. eg: The tiOPF project runs automated builds every 3 hours with its test suite. Those are totally clean builds using the latest source code. Those builds run under Linux, FreeBSD and Windows. They also have different combination of options, testing various persistence layers (Zeos+MySQL, Zeos+Firebird, SqlDB+MySQL, SqlDB+Firebird, SqlDB+PostgreSQL, IBX, Oracle to name but a few). Even different compilers FPC 2.6.4, FPC 3.0.2 and Delphi 7 (we don't have access no later Delphi versions any more). Tests alone take between 20-30 minutes to run. All build results are stored and can later be reviewed. The latest summary results are posted to a "builds" newsgroup with a URL to a website for a full review of each test case (1800+ tests) with the exact errors, line numbers etc. So, what makes a compiler project like FPC different to that? Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] How do you keep up with FPC discussions?
On 2017-05-25 12:09, Bo Berglund wrote: But my observation is that email is not the best way of managing these things even if you *can* create some folder structure. Email clients evolve a lot and suddenly your old store of messages is not readable anymore. I've been working on and off (more off than on these days) on a local project where I am rethinking emails completely. I too never delete emails and my archives go back nearly 15 years. It's a nightmare to find anything, because I used multiple email clients over the years. So my new project splits the "email client" into two parts. The headless email daemon/service. This does the polling of the inbox in one or more mail accounts, and also does all the sorting of messages (via user defined filters). Messages are then stripped apart and stored in a Firebird database (other database servers like MySQL (G*d forgive me), Oracle, PostgreSQL, MS SQL Server etc) are also supported. No information is lost, and the original email (pristine and untouched) can be regenerated from all the parts. When I say "filtering", I really mean messages are tagged. There is no such thing as a physical "folder" (tables) in the database. By default new messages will get the "new" tag assigned to them, and whatever other active filters are available to that account. I then have the GUI front-end, which doesn't actually do any emailing at all. It is simply a client/server application (but can also be recompiled to be a 3-tier client via HTTP). The filters create a "virtual" treeview structure of your messages. Moving a message from one folder to another, doesn't physically move the message, it simply update the tag associated with that message, which then makes in appear in a different location in the GUI. Multiple tags can be applied to the same message, so you can find the message in many ways, and no duplicate copies of the message exists. Full-Text Searching is supported too. Posting a new email creates a new database entry, and tagged with the outgoing "queued" tag. I've defined (user configurable) a 5 minute delay before outgoing messages are actually sent. The daemon will then pick up those queued messages and physically send the emails at the right time. Emails can also be scheduled for sending at a specific date and time of your choosing. The daemon also has the ability to import existing emails from Mbox (MailBox) files or IMAP folders. This opens up multiple possibilities. If you don't like the default GUI front end, change it or build your own, or even design a web-based version, or create a console version (that mimics your ELM or Alpine clients). The database table structure is pretty straight forward, no DB specific stored procedures are used - so very portable to other database servers. The database communication is all done via objects and abstracted away using the tiOPF framework. The current GUI client also uses tiOPF to communicate with the database or the middle tier app server. The project is far from complete, but whenever I have a spare moment I work on it further. I hope to one day unify all my email archives into a single database and easily searchable via the GUI frontend. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] How do you keep up with FPC discussions?
On 2017-05-25 09:02, Mark Morgan Lloyd wrote: even if most of the time he pushes it far harder than many of us enjoy. I’m afraid it’s an occupational habit. My job as a technical consultant and developer often requires me to come up with more efficient ways of doing things. Yes, inefficient ways and code really grind on me. I’ll try my best not to push this any further here. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-25 09:26, Florian Klämpfl wrote: This is at least one month of work I (and probably nobody else) can and want to spent. And some how I believe that will never happen (or be allowed) even if I (or somebody else) decide to donate a month of our time. I fear the resistance will outweigh the dedication to accomplish this task. This was made abundantly clear to me now. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] How do you keep up with FPC discussions?
On 2017-05-24 21:28, Marco van de Voort wrote: - preferably anything with "huys" and 'git" :-) Awesome, I made the list. :) Seriously, just be selective, and use a threaded reader that allows you to skip/ignore threads. Agreed. And if you are using Mozilla Thunderbird, learn to use the “R” key. If the thread is not already marked Ignored, the “R” key will mark the whole thread as Read. I only read threads with a subject line that catches my attention. I also have a filter that tags all messages that mention my name - seeing as I don't read every message in the mailing list. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 21:21, Marco van de Voort wrote: Even a limited change is already a massive operation, let's keep it managable. So how large is the FPC team really? I'm talking about active developers on a day-to-day basis who have commit access to Trunk. Oh wait, I can answer that very accurately myself... using git. $ cd /data/devel/fpc-3.1.1/src [src (master)]$ git shortlog -s -n --since=4.months 191 Michael Van Canneyt 147 Mattias Gaertner 140 nickysn 83 svenbarth 73 Florian Klaempfl 62 pierre 52 Joost van der Sluis 39 maciej 30 karoly 26 Marco van de Voort 23 Jonas Maebe 22 yury 7 lacak 5 marcus 3 Sergei Gorelkin 2 hajny So that's 16 developers - a nice size, but also not a large team (say compared to the KDE project that moved from SubVersion to Git, or LLVM seeing as that was mentioned earlier). The amount of commits are also not huge - so they most likely have a day job. ;-) And the two developers with the most commits (by a large margin) work primarily in the RTL and FCL. That's development work like any other project I have worked on. Nothing special or "rocket science" about that (sorry Florian). As for the 3rd person "nickysn"... I see he/she actually worked on the compiler/* tree. How do I know this? $ git log --name-only --oneline --since=2.months --author=nickysn Randomly picking some other authors, it seems most work is primarily in the RTL and FCL. A few small exceptions like Sven and Florian who mostly work in the compiler tree. So this definitely doesn't convince me that compiler development is so different to other projects. And definitely doesn't rule out that Git couldn't work, or that an improved workflow couldn't be applied (freeing up time in the long run). But I get in now. You guys are set in your ways - good or bad, and currently not willing to change. So I'll leave it at that. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 21:07, Florian Klämpfl wrote: I'm sorry to bust your bubble, but how different can compiler development be. Apparently it is: Then why are you still talking to me. I have my doubts that it can be _that_ different. To quote Marco "I see to proof to make me think otherwise". The workflow will not change. If the tool does not fit the workflow, it is the wrong tool. Period. Yes, habits (good or bad) are a hard thing to break. In that case, please enjoy your project further with SubVersion. Until you actually use a project with Git (not git-svn), we might talk again. But like you, I'm not holding my breath. ;-) Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 19:11, Florian Klämpfl wrote: You never developed a real world compiler and you have no real insight into fpc development so you cannot know about this. As a technical consultant for many clients I have seen a boat load of projects from banking to online trading to educational etc. I'm sorry to bust your bubble, but how different can compiler development be. I'm not talking about the recursive build process, I'm talking about bug fixes and implementing new features. Who tests and signs? Our testing facilities cannot test more than a few (1, 2 maybe 3) branches nightly as we use build farms used also Like the Git project, you can merge all new work into a testing branch. That could be what "trunk" is now. Once features have been tested by FPC core members or community - using that trunk branch, those signed off features can be merged into a more stable development branch... lets call it "develop" (or in terms of the Git project, call in "next"). The "next" branch will always be more stable that "trunk". The "next" branch is also the one the next release (hence the name) will be based forked from. If you haven't found the Git project documentation on this workflow, I'll find it for you and post the URL. I think actually the 'git help workflows' command lists that same information. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-24 16:18, Jürgen Hestermann wrote: I can type "begin" and "end" much faster than the cryptic { and } (on my german keyboard). I use all 10 fingers for typing and each special character is an interruption in my coding flow.. I use a custom Dvorak keyboard layout. I used to use Programmer Dvorak, where the symbols are where the number row normally is - but don't require a SHIFT. So { would be a single keypress. http://www.kaufmann.no/roland/dvorak/ These days I use a custom Dvorak on a Ergodox keyboard. All my most used symbols are on the 2nd layer. I use my left thumb to temporarily switch layers, and then the rest of my left hand fingers to type the symbol. No typing slowdown at all. https://github.com/graemeg/qmk_firmware/tree/gg_dvorak/keyboards/ergodox/keymaps/gg_dvorak But I get what you are saying. Most people can’t type symbols or numbers as fast as the normal alphabet. I always indent the begin (and end) of a block together with the block: if true then begin DoSomething; end; This way the indentation always looks similar independent from whether you have begin/end or not: I’ve been working with Michael van Canneyt for the last two years, and he indents like that too. It drove me nuts in the beginning, but kinda got used to it - though I never indent like that. Your last sentence at least explains why one would want to do that. You cannot solve all these cases just by TABs. These days I don’t care about code formatting at all - while I code. I just type. Then on occasion I press Alt+S which triggers Jedi Code Formatter which formats my current unit as it should be. I have different formatting styles for different clients. It’s a huge time saver! If only Lazarus IDE had a faster way of switch between formatting styles (would be nice if it was integrated with Project Groups). At the moment I have bash scripts that flip between them. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 15:30, Tomas Hajny wrote: I have my doubts about availability of the GUI component for OS/2, but you're welcome to prove me wrong. ;-) I haven't personally tried Git under OS/2, but I have two OS/2 VMs available, so I'll test. Does OS/2 have a port of TCL/TK? That's what those GUI's are written in. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 15:32, Santiago A. wrote: But IMHO it clearly shows how poorly git defaults and parameters have been chosen. And I am afraid that has been one of the hinders of git adoption. The problem goes much deeper than that. I once brought up the issue of inconsistent command line parameters in the Git mailing list and gave ideas I thought were improvements. They immediately confirmed the problem, and the problem in finding a solution. Some issues raised: * Because git has so many options (way more than normal apps), one change can (and does) have affects on others. * Backwards compatibility. Changing the commands will break just about every Git GUI front-end there is. Many of them simply parse the output of a forked 'git' command. But they would actually consider doing this for the greater good - I was impressed. * Conflicting command line parameter "modes". If interested, the discussion can be found here: https://www.mail-archive.com/git@vger.kernel.org/msg76433.html Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 15:03, Graeme Geldenhuys wrote: I compile Git from the original source code, and it includes everything... Console, GUI and SubVersion support. On this web page the first two screenshots are of gitk and git-gui - the standard GUI tools of Git. https://git-scm.com/book/uz/v2/Git-in-Other-Environments-Graphical-Interfaces They might not look as visually pleasing (eye-candy) as many other gui tools, but trust me, these built-in apps pack a punch (tons of features), and always supports git very well - obviously. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 14:38, Luca Olivetti wrote: $ LC_ALL=C git gui git: 'gui' is not a git command. See 'git --help'. I guess you can blame your Linux distro's rubbish package management requirement policies for that. They probably split Git into two or more packages. F**ken annoying if you ask me - hence I don't use Linux any more. I compile Git from the original source code, and it includes everything... Console, GUI and SubVersion support. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] How do you keep up with FPC discussions?
On 2017-05-24 03:07, nore...@z505.com wrote: I'm positive that some of you are just clever A.I. bots posing as humans.. that's where your super powers come from. You're not actually humans.. Or we have a couple of clones - human trials started ages ago in some countries. ;-) Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 12:46, Mark Morgan Lloyd wrote: > [reportdesigner (reportdesigner)]$ git describe > v1.4.1-787-g45f932c1 > > What does that output tell me: > * Whatever code I'm working on is follow on from the "v1.4.1" > release. > * This line of [development] history has seen "787" commits > since the v1.4.1 release. says explicitly that the modification with the hash g45f932c1 takes the project on the Git repository under consideration to something that could usefully be described as v1.4.1-787, and you can use that in conversation without having to be online to a repository. Yes, you can use "v1.4.1-787" to describe a specific point in history, but the far more common and useful one is the "45f932c1" SHA1 reference, because the latter can be used directly in all Git commands. If multiple people were committing directly to the same repository (I presume Git supports that) Yes. presumably they'd see a consistent sequence of version identifiers, i.e. very much like Subversion. Yes. A SHA1 reference like "45f932c1" only only points to a specific commit, it also describes the history that lead to that point. Let me explain: Say you have two branches with the same file, and the file hasn't actually changed between those two branches. Now say I give you a patch file to apply to that file in both branches. The commits that gets generated in each branch - even though the diff is identical - will not have the same SHA1 reference. Because the history to get to that point has diverged because of the branching. So if I mention a problem in the "45f932c1" commit of a Git repository. No matter how many clones [by multiple developers] there are of that repository, that SHA1 reference will point to the exact commit and code change - in all the Git repositories out there in the wild. This is also one of the huge arguments about NOT using the git-rebase command on a branch that has been published, because a rebase command rewrites the history. So every commit (SHA1 reference) in that affected branch changes. Rebasing local branches (not made public yet) is obviously not a problem. The Git project repo has a "short lived" branch where they do all kinds of testing. They explicitly note that nobody should base any new development on that branch, because it will frequently be destroyed and recreated (merging in new feature to be tested for the next cycle). What happens in the case where there's multiple repositories? No difference. A git repo contains the full history. If you clone that repository 100 times between developers, you effectively have a 100 backups. If the original repo had 5 branches, all 100 clones with have references (and full history) to those 5 branches too. Such remote branch can be listed using the following command: git branch -r eg: [tiopf (tiopf2)]$ git branch -r carlo_marona/Add_tiLogToDebugString carlo_marona/Additional_Mediators carlo_marona/Fix_BOOLEAN_Defines carlo_marona/Fix_TtiDatabaseZeosAbs_SetConnected_Except carlo_marona/Fix_tiCriteria_AssignClassProps carlo_marona/Fix_tiMediatorView carlo_marona/Fix_tiModelMediator carlo_marona/Fix_tiQueryZeosIBFB_Unit carlo_marona/tiOIDManager_Update carlo_marona/tiopf3 github/master github/tiopf1 github/tiopf2 github/tiopf3 sourceforge/HEAD -> sourceforge/master sourceforge/fea_Fix_Event_Execution_Of_TtiPropertyLinkDef sourceforge/fea_Missed_Changes_On_tiOPF3 sourceforge/master sourceforge/tiopf1 sourceforge/tiopf2 sourceforge/tiopf3 Here you can see my local tiOPF repository has 3 remote repositories defined. "carlo_marona", "github" and "sourceforge". I frequently pull fixes from Carlo, so that is why I have a permanent remote repository link to his published work. For contributions from one-off developers I don't bother setting up a remote repository link - I use their repository URL directly in the git-fetch command. The official public tiOPF repository lives on SourceForge.net, so that is the "sourceforge" remote repo link. The "github" link was just a backup public repo I used while SourceForge.net had a major global outage a little while ago. So development continued as usage without skipping a beat (thanks Git). You can also see from Carlo's repository that he nicely names each branch, and every branch that is a bug fix has the prefix name "Fix_" to it. In the end you can name branches whatever you want though, and you can even groups things with a "/" in the name of the branch. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 12:49, Mark Morgan Lloyd wrote: s the licensing problem (Sun's license being incompatible with GPL) which resulted in a lot of FUD. It's only a problem if you want it to be. Yes, they can't include ZFS as standard with a Linux Distro (though some now apparently do), it is is pretty much a two command step to get it installed. 1) // Add the add-on apt repository to your list 2) apt-get install zfs Something like that - its been a while since I did that in my dual-boot Linux environment. Also ZFS doesn't run via FUSE on Linux any more - it is a "native" file system now. https://launchpad.net/~zfs-native/+archive/ubuntu/stable http://zfsonlinux.org/ The really good news is that for some time now, all ZFS development is merged into a single organization. So OSX, Linux, FreeBSD all have the same ZFS features and functionality. No more fragmented development. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] How do you keep up with FPC discussions?
On 2017-05-24 03:07, nore...@z505.com wrote: How in the world do people (you) keep up with reading email lists and not waste the entire day? I'm between jobs! And all my gardening chores are already done. :-P Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-24 02:52, nore...@z505.com wrote: I'm not just talking about 8 space indentation vs 4 space or 2, I mean having to put code { { { here Instead of fpc/oberon/golang: But in Object Pascal you have... begin ... if then begin ... if then begin ... Object Pascal blocks are longer to type - “begin” vs ”{” and “end” vs ”}”. Also IF statements require the extra “then” keyword etc. As for indentation. At least with real TAB character indentation, you can configure the width of a TAB as a user configurable parameter without affecting the source code. With space indentation you are stuck with whatever the original author did. But lets not get into Space vs TAB vs Elastic Tabstops indentation/alignemnt arguments - that’s a whole new war I don’t want to tackle. :) Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-24 02:56, nore...@z505.com wrote: But my biggest hate for C is not C itself but just the one fact that it lacks strings. I also hate the cryptic syntax, the fact that there is *.c and *.h files etc. Apparently Java took a lot of ideas from C, but at least they had the common sense to get rid of the *.h file mess, and the Object Pascal "interface" vs "implementation" section mess! Kudos to them for that. Navigating Java code is so much easier now. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 12:32, Karoly Balogh (Charlie/SGR) wrote: missing from the converted repo, at least the one the FPC Team had internally. As in, the history wasn't complete. Not sure what that means The bottom line is, the end result should be identical to what you see when you do a 'svn co' on any branch, compared to the Git migrated version. At least this was my case in all the conversions I have done. Some of the git-svn output is weird though. They sounds more alarming than they really are. eg: If you had a commit that only changes svn properties, I believe sometimes git can skip over such commits because there is no direct translation to Git. But those are generally rare, and often not an issue, because it was more SVN repo maintenance that actually tracking changes to files. The latter being way more important. If the Free Pascal team is ever serious about migrating to Git, I'll happily help out with the migration process. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 08:21, Santiago A. wrote: i.e. instead of git checkout master git checkout develop eg switch master eg switch develop Git has built-in support for alias. So you could simply define a couple of aliases in your $HOME/.gitconfig file that mimic the above commands, or even the SVN commands. I have over 20 aliases that I created over the years to simply long command line parameters. For example: $ git config --global alias.switch checkout will result in the following -[ ~/.gitconfig ]- [alias] st = status -uno svnlog = log --stat=70 --pretty=medium --name-status --reverse ...snip... switch = checkout -- Now suddenly I can do this: $ git switch develop No need for Perl add-ons. ;-) ps: Above I listed two of my most used aliases as well. I have plenty of others too. git checkout master git merge feature1 feature2 feature3 feature4 feature5 ...where "featureX" is a branch name. Yes, that's very handy... and scaring. The merge is done magically in the repository, not in a working machine, Everything is done locally first. So if you are not happy with the result, it can be undone with a simple git-reset command. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 19:37, Florian Klämpfl wrote: First problem: quote from core: The git-to-svn bridge is slow, but pretty good - not perfect, sometimes it falls over and needs a restart. But I can honestly say, I have converted full SubVersion repositories (from small to very large) to Git, and always managed to have everything in Git at the end. Nobody ever stated that any type of migration is going to be without problems. It's the nature of migration. I've stated numerous times that SubVersion is often abused because they have very bad concepts, which have been clearly designed and developed in Git. "Tags" are the first thing that comes to mind. Back in 2009 (I think it was) when I created Git mirrors of FPC and Lazarus, I initially did it with all branches and tags in place. It took long, but there was no roadblocks. The only reason I then changed it to only track the "trunk" branches is because I personally think a migration should be a one-shot deal, not a continuous process. It was a pain to manually update and work around the weird SubVersion behaviours (commits after a Tag was created - God Damn, use a branch instead!). Over the years I've personally migrated over 200 SubVersion repositories to Git. My final step has always been to checkout each SVN repository and branch, and then do a checksum comparison to the Git version. Ensuring everything is like it is supposed to be. Any discrepancies can then be resolved with a single commit, but to be honest, I can't recall ever having the need to do that. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 02:11, nore...@z505.com wrote: I'd rather upload/commit files to a server to insure it is backed up properly... There is absolutely no guarantee that your file are any safer. So you have your Army of Developers in a single building. You store all your files on a Server which is in the server room in the basement of the building behind steel doors. Oh wait, a Boeing 747 fully fuelled just flew into your building. Everything is now a pile of rubble. Oh the backups where on another server next to the one you pushed changes to. ;-) Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 01:26, nore...@z505.com wrote: line much, but it serves my need very well visually committing which files I need, which IMO is faster and more productive than running 5 different commands on files I have to manually type in or keep pressing Git includes as standard all the GUI tools you would ever need. Plus those GUI tools are available on all platforms that Git supports. So there is no retraining in different tools for each platform. eg: Tortoise Git is only available on Windows. So if you jump to OSX or Linux or FreeBSD, you need to learn a different tool. Anyway, the standard git GUI tools... * git gui: visually make commits, do branch management, selective line-by-line commits, pull, push, merge etc. * gitk: visually see your commit history. For a specific branch, or all branches in the repo. You can also cherry-pick commits from one branch into another. * gitk -- See the full history for a specific file only, or for a directory only. * git gui blame: visually see line-by-line who made which changes. All these gui tools also have built-in navigation, where if you click on a SHA1 it navigates to it. The point is that github does in fact allow you to treat a github repo like an SVN one, Ah, I see that now. I never knew that existed. It is definitely a Github only thing. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-24 02:59, nore...@z505.com wrote: But the virtual machine is just C code, so it's a wrapper around C, IMO That is way over-simplifying it I would think. I could be wrong, but, all it does is end up calling C written VM, right? Technically, you can write a VM in many other languages too. I honest don't know what language they use for the various VMs out there - but I guess C is a safe guess. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 02:46, nore...@z505.com wrote: But what happens with corrupted or failed hard drive on your personal computer? Do you have any backups or is this local git work only on one I used to live in a country with constant blackouts or brownouts. So harddrives took a real punishment. UPS's were a requirement, not a luxury. So I take data protection very seriously, even though where I live now the power is much more reliable and clean. Yes, I have off-site private backups, and on occasion I push those to a USB stick too. Everybody should at least be doing this. I also know how valuable my work and data is - I run my own business. All my data, code and VMs lives on 4 server quality harddisks using ZFS RAID-Z2 as the file system, and FreeBSD as my OS of choice. I will not trust my data on anything other than ZFS. Even my USB sticks use ZFS. My hard drives were bought from different suppliers so they aren't all from the same batch. I also replace them every 3-4 years (ZFS makes this a no brainer). I highly recommend you read up on ZFS if you don't know it. It comes natively with Solaris and FreeBSD, and is easily installed on Linux. I believe OSX might also have unofficial support now. ZFS is a copy-on-write files system. Every read and write is checksummed. I can have two hard drives fail (very very unlikely) and still be able to rebuild my data. Very sensitive data I store in a partition that keeps two copies of the data scattered around the ZFS pool. ZFS partitions can be created and destroyed on the fly - they are more like directories than partitions. So you can create and destroy partitions as the need arises, and set encryption, compression, de-duplication etc on each partition as you see fit. Sorry, I've just had too many hard drives fail on me... so many fail that it's almost as if someone was doing it on purpose to me. Sounds like you are in serious need of ZFS. If you work on a laptop (so can't install 3+ hard drives), then I recommend you get one of those USB3 or Thunderbolt port external NAT-style storage devices. I know some of them support ZFS. But those storage devices are a bit costly. But then, how much is your data worth? Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 21:41, Florian Klämpfl wrote: This is what I do as well for several things, but I still think, subversion is the better solution as the canonical FPC repository. The ‘git-svn’ functionality is great - I use it for several SubVersion projects too. It also unfortunately stops you from using many of the nicer features of Git. So you definitely don’t get the full experience - it’s more like the “cheap seats” at a concert. You can say you were there and heard the band sing, but you couldn’t actually see them. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-24 02:01, nore...@z505.com wrote: I like the ability to fork, as I am sick of developers not allowing me to make some change, and I go off and work myself on some fork but.. it's also anti-social and leaves projects in so many forks that no one "fork" is probably the wrong word. I prefer the word "clone" instead. It is only anti-social if YOU (the developer) don't share your changes. You do that by sending a pull request to the original project. See... git help request-pull ...for more details. And no, you don't require GitHub for pull requests, it's built right into Git. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 21:19, Marco van de Voort wrote: I was not asking for ideally. I was asking very specifically how a GIT in a FPC team group would work. And no, sending 40+ pull requests to all members of core does not count. So there is one golden repo and that is what I'm talking about. And like I explicitly said, read the well documented processes followed by the Linux Kernel or on a much smaller scale, the Git development itself. I would like to have lots of extra manpower too, but I rather not spend it on what in practice would be rubberstamping commits (and delays in distribution till something is approved if the reviewers are AFK). Once again, read how the Git project deals with it. That workflow could suite FPC quite well. In summary, feature are in separate branch. There is a public "testing stablish changes" and a public "testing unstable" branches. Everything stays in branches until they are signed off and merged into "master" (aka Trunk). Then less than 5 minutes is spend doing a "octopus merge" of all branches that have been well tested and signed. If you don't know, a octopus merge is a single merge command but merges 2+ branches all in one go. eg: git checkout master git merge feature1 feature2 feature3 feature4 feature5 ...where "featureX" is a branch name. Unlike SubVersion, you don't waste a whole day "rubber stamping" commits. Such micro-management doesn't exist in Git. Git was designed to work better that SubVersion, and specificall at branch management and merging. Hence my earlier WTF comment when I read the LLVM team want- to ban merge commits! That person clearly has no f**ken idea how Git works. In distributed, volunteer driven, projects, people are away/nonresponsive for extended periods of time, working hours (and days) don't match. Also working this out via mail is much less productive. Then simply don't pull or merge their work. Simple as that. Once again, you are thinking in terms of SubVersion. Don't! You don't see the Linux Kernel project come to halt when somebody fucks up a commit - they just don't merge that commit or branch until the idiot fixed his work. And neither do they have communications problems via emails or the mailing list - they have tens of thousands of contributors spanning the globe. So I don't understand why you think such a small project like FPC will have communication issues. That's just laughable. Sorry to say, but I didn't find anything new or usable in this post. Actually, it's only your stubbornness showing. I thought Karoly's reply was very informative. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 21:16, Florian Klämpfl wrote: ... and the code is lost :) Not at all, I have about 20+ local branches in my fpGUI repository. Some branches date back to 2009, 2010. Ideas I had, but lost motivation, or they were simply an experiment (that could be useful at some point). Just 2 days ago I revived a 5 year old branch and finally completed the work. I didn't pollute the public fpGUI repos because it was personal ideas or features I toyed with. They are in various incomplete stages, or simply experiments. I don't want others to see such work until my ideas have matured. On the flip side, in the past I have seen newsgroup posts where somebody has similar ideas to one or two of my incomplete branches. In such cases I speak to that person and if interested, I publish such a branch to begin collaboration. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 21:10, Karoly Balogh (Charlie/SGR) wrote: Now, in Git, this idiot can do: Plus that idiot could start the fork and his branch without needing to bother the FPC team. With SVN he has to ask them to add him to the SubVersion repo user list, create a branch, and manage his user permissions for that branch. Git = KISS is this case. ;-) Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 21:05, Florian Klämpfl wrote: FPC is a compiler and not an OS kernel, so would like to see such blog posts from big compilers: e.g. gcc, clang OS Kernel, Compiler, any other project - what's the difference. Git development itself is managed in a very "distributed" way with multiple branches, maintenance releases etc. And more impressively, all branch merging is done by a single person. Their processes are quite well documented, and if you see how active the Git development is, it goes a long way proving that even a very active project can be managed by very few (one in this case). My point is, you can learn from them to see how a project can be managed without adding extra work-load to one person or a small team (like FPC). Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 20:33, Karoly Balogh (Charlie/SGR) wrote: Now, how the actual process would look with the FPC team, that's hard to define at this point. But the tools are there for it. Exactly what I was getting at. Was this a proper answer, or I was beating around the bush in your views? :) Finally somebody that understands distributed version control, and how Git could be used. You gave a very good answer indeed. Too many people (and companies) are so stead fast in the ways of a client/server version control system - like SubVersion. They then wrongly (or not ideal) force those ideas onto Git usage. Hence the reason I said it takes a bit or "rethinking the problem", and in the end everything becomes quite clear. For those interested, read the many blobs about how the Linux Kernel development is managed. Or even how Git's development itself is managed. True distributed workflow models. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 16:17, Martin Frb wrote: Git just doesn't do KISS. Git is as complicated as you want it to be. If you want to use it like SVN, then go right ahead. You will miss out a lot though. I always recommend newcomers to start out with the basic 4-5 commands (same as SVN). Then as your confidence grows, introduce new Git functionality. And contrary to what many may think, it is pretty near impossible to f*ck your repository up so that things are unrecoverable. As long as something was committed, that something can be recovered, or commands can be undone (yes, even deleted branches). Try that with SubVersion! Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 15:23, Marco van de Voort wrote: some info is at http://llvm.org/docs/Proposals/GitHubMove.html#on-managing-revision-numbers-with-git merging, external repos were some of the other issues. Good Lord, who wrote that, and when? Clearly someone with a serious lack of Git knowlegde - just the thing I described 2 replies ago. " However, we propose to mandate making merge commits illegal in our canonical Git repository. " WTF? Branching and Merging are two key feature of Git. So if the don't want merging (or only allow fast-forward merges), I guess they want to Rebase everything everybody contributes - yeah the lovely linear history of SubVersion because they don't know better. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 15:09, Mark Morgan Lloyd wrote: One question if I may. Subversion has revision numbers like 12345, and it's comparatively easy to query that and build it into a piece of software's version information. And the same is true for Git. By design, distributed version control systems (any of them, not just Git), can't rely on a sequential number. The word "distributed" should say it all. True parallel development; no single "server" instance etc. Saying that, git includes a command 'git describe' which does what you need. I find its result also way more useful and informative that a single sequential revision number - which only has a mean to a developer. Lets use an example: [reportdesigner (reportdesigner)]$ git describe v1.4.1-787-g45f932c1 What does that output tell me: * Whatever code I'm working on is follow on from the "v1.4.1" release. * This line of [development] history has seen "787" commits since the v1.4.1 release. * The "g" prefix indications that the Git revision control system was used. * The "45f932c1" is the SHA1 value of the last commit, that uniquely identifies where we are in the whole history of the project. Irrespective of having 1 or a 1000 branches. Now as with anything Git, everything is configurable. So the git-describe commands has many optional parameters too. So you can change the output to suite your project's needs. Things like should Tag names be used in the git-describe output, or only Annotated Tags, or only Branch names. Do we want the commit count, do we want the "g" prefix, how long SHA1 value do we want etc etc. Many applications incorporate such output in there version information. See attached screenshot of one such example. I've seen plenty of others too. What does a SubVersion revision r20453 tell you? * Which branch are you on? * Which release is this work based on? * Is it a "hotfix" or new feature. * Is it maybe a tag? Though Subversion doesn't really have a concept of tags, as they are just branches in a bad disguise. No, it only tells you that you are using commit number 20453. So now the next thing you are probably going to tell me is that yeah but I can use the revision number in Windows's version numbering as a Revision or Build value. Yes and No. Only if your repository has less than 65535 commits - the maximum a WORD type supports. So what happens if you have more commits that that? Many large projects do. > It's also trivial for a developer to > look at the revision that he's currently working with, to say whether > it's older or newer than revision 12345, As I just explained. The git-describe output tells you that and more. > and to get a log of what the > relative changes were by /only/ knowing the revision number. Nothing new, Git does that too. Git (no surprise) even goes further and also tells you the Parent(s) commit that got you there, the Child/Children commits following on, what branch it is on and what Tags this commit follows. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Git & SVN
On 2017-05-23 11:31, Tomas Hajny wrote: the other, but let me remind you, that it isn't just about Florian. During the previous discussions on this evergreen topic, Florian, Marco, Jonas (if I remember correctly) and others raised quite a few specific questions on how to accomplish particular tasks commonly used in the FPC project. I may have missed something, but I haven't noticed a particular proposal from you or anyone else describing in detail how to cover those needs To be honest, I can't actually remember seeing any such proposal (asking for advice or help) in the FPC-Users mailing list. Maybe it was in a list I'm not subscribed in? Otherwise, I would have happily given my advice. I also don't expect somebody with no or very little Git experience to give any good advice on such a matter either. I believe most of the FPC team don't have any or very little Git experience. I can add that I have been working closely with Michael van Canneyt for the past two years. In the last few months I have introduced Git in his workplace too, and his knowledge of Git has improved a lot. So maybe in the next round of proposals, Michael will be able to offer some more advice too. So again, if the FPC team ever wants to consider Git, feel free to contact me so we can bounce around some ideas. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-23 01:03, Nikolay Nikolov wrote: Isn't java just a wrapper around C? No. Java compilers generate code for a virtual machine, called JVM (Java Virtual Machine). They do not generate code for x86 CPUs or any other > ...snip... Very nice explanation and detailed information. x87 FPU instructions. Sounds so great, you're going to ask if there are any disadvantages to this approach? And, of course, there are - since the program is essentially recompiled every time the user runs it, starting Java programs take a long time. Technically correct, but you make it sound much worse than it really is. Here Eclipse IDE starts up just as fast as Lazarus IDE. And Eclipse is easily 10x or more bigger than Lazarus (when it comes to features). So JIT does a pretty damn good job if you ask me. Also JIT has improved tremendously over the last few years. In speed, performance and optimisations. I have read somewhere that now it does a [quick] compile to get your application up and running faster, then after your app is running it can recompile some classes with even more optimisations, and runtime reload those classes used by your application. All done auto-magically in the background. ;-) be a lot slower than a FPC program. I know comparing different IDEs is a little apples-to-oranges comparison (because they may have different features and vastly different implementation details), but compare the speed of e.g. Lazarus to any IDE, written in Java, even the fastest one. :) Lets just look at the two most popular Java IDEs - Eclipse and Intellij IDEA. When they are running I don't experience any speed difference comparing them to some native non-Java application of similar size. It is also worth noting that both Eclipse and Intellij IDEA does a ton more than Lazarus IDE. They both do deep code-analysis while you are coding, making suggestions on how you can improve your code, can apply those improvements with a single click or keyboard shortcut, have extremely impressive refactoring functionality that makes Lazarus look like Notepad. And the list goes on and on. Lazarus is good, but it doesn't hold a candle against what Eclipse or Entellij IDEA can [and does] do. Yes, yes, I know they have 100's or 1000's more developers too, and corporate backing. So making a comparison between those IDE's and Lazarus is rather insane. Always measure and try to understand why something is slow. In 99% of the cases it's not what people initially think. Indeed. I've learned a lot in the recent discussions, and I'm glad to see the FPC team seem to be making some effort in improving the compiler optimisation, instead of simply dismissing my work and comments. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] Git & SVN
On 2017-05-22 23:11, nore...@z505.com wrote: What happens if you use the SVN bridge that allows you to run svn commands to a git server? Maybe your wording is confusing, or SVN has abilities I didn't know of. I know Git can manage SVN repositories, but I didn't know it was possible other way round (I doubt it is possible). I often use Git to manage SubVersion repositories I don’t have control over. For everything else I’ve moved over to Git years ago. Local working copy issues Florian described would be an issue with this bridge, or not an issue? As with any new applications or technologies, there is always some learning curve (big or small). There are tons of bad habits ingrained in SVN users. Those do not translate well to Git (thank goodness). Git works fundamentally different to SVN (for the better). So you need a change in mindset - some refuse, hence they struggle with Git. And then wrongly blame Git for it. I fear this is most likely what happened with Florian. There are also 100’s of different work-flows for when you work with Git repositories. I’ve introduced Git into many companies. In every case I look at how they work, suggest an already existing work-flow as a starting point (*), and then tweak it to their needs. In they end they get exactly what they want, and without fail all of my customers said they should have made the switch years ago. * - My all time favourite git work-flow is: http://nvie.com/posts/a-successful-git-branching-model/ It works very will for small and large teams. Supports big or small features. Allows for long-term support releases as well as quick bug-fix releases. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-22 23:39, nore...@z505.com wrote: What about Rust or plain C? Or Digital Mars D? I hate C with a passion. I'll never code in that ever again. I also have no interest in learning "the new language flavour of the month" - which will be obsolete in a year or two. Object Pascal is already pretty irrelevant when it comes to looking for jobs - I'm a freelancer / contract programmer. Though it has served me very well since TP 5.5 and then again from Delphi 4 onwards. I now go where the work is (as well as the money - but enjoyment of work is still a higher priority for me). Or instead of using rust/c/java, simply fix FPC, which is a good solution IMO I don't know compiler design or how it works internally. So contributing in that area is out of my scope. I don't see how ZenGL and Andorra3D have been able to succeed as game engines I can't speak for those, but have used OpenGL with FPC for a few months. I'm definitely no OpenGL expert, but I did manage to off-loaded a lot of work via shaders to the GPU. So that frees up a lot of what FPC has to do with the general game "ticks". Indeed it is not exactly a bug but could just be correct code that is slow. Many seem to miss the whole point of what I was trying to say. Other compilers did a much better job than what FPC could manage - using the exact same code (just the language syntax that differed). I didn't need to change anything for GCC or Java, and I didn't have to implement all kinds of work-arounds. Either way, I've run out of energy discussing this. I profile my code one more time and try the suggestions in Jonas. Simply because I'm curious. But other than that, my project has already moved forward using Java. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-22 22:45, nore...@z505.com wrote: The amount of nesting and indented procedures inside classes in Java is horrible, IMO. It's not a Java language issue, but the indent preference of the developer. Many Java IDE's support multiple coding styles and does auto-formatting as you type or save. Some coding styles are better than others, and all of them are configurable. Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Developer workflow with Ergodox
On 2017-05-15 23:02, nore...@z505.com wrote: Been meaning to try dvorak again one day, it's just that all laptops come shipped with a standard keyboard so I prefer to use a keyboard All operating systems support the US English Dvorak layout for absolute years. What I personally tested: OS/2, OSX, Windows (all of them), Linux, FreeBSD, Solaris and Haiku. They all support software switching the keyboard layout, and Dvorak comes standard. So you don't need to swap keycaps etc. If you touch type, which hopefully you do with QWERTY and definitely with Dvorak, then there really is no need to look at the keys or swap keycaps. Hell, my Ergodox keyboard doesn't even have anything printed on any of my keycaps - they are pure black. The Programmer Dvorak will be a manually installed layout for Windows (I don't know about OSX), but that is only a few KBytes install. I believe Linux and FreeBSD now includes Programmer Dvorak as standard for a few years now too. Dvorak and Programmer Dvorak are pretty similar anyway, it's just the number row that has really changed. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Developer workflow with Ergodox
On 2017-05-14 22:09, nore...@z505.com wrote: Does it solve the Shift Key strains issue? Yes, you can reprogram the keyboard layout any way you want. Modifying a layout is very simple via code. And even if that is too much for you, there is visual web based layout designer that generates the .hex binary file for you. The possibilities with the Ergodox is endless. Just take a look at this website. https://implementsblog.com/2016/10/16/my-ergodox-ezs-custom-layout/ The modifier keys are now long-press keys under the home row. I tried in recently, and it is amazingly good, and actually pretty easy to get used to. Finger travel is now near zero for modifiers. :) I also programmed the Enter and BackSpace keys for my index fingers - much stronger that your pinky! My biggest gripes in programming, or hates, is having to constantly feel like I'm going to end up hospitalized due to finger strains... Mostly because of: - BiCapitalization/CamelCase... pinky finger shift key strain - same goes with underscores in_plain_c - and : colon for assignment... too much shift key - and in { curly brace languages, once again more shift key annoyances You really should take a look at the "Programmer Dvorak" layout - if using a normal keyboard. And yes, you can program the Ergodox with that layout too. For the symbols, I don't use the top row (normally numbers) any more - too much stretching. On the Ergodox I use a Symbols layer instead. I toggle it with my right thumb (acts almost like a Shift key), then type the symbol with my left hand. Here is that layer. Most used symbols for me is on the home row, or very close to the home row. Index finger favoured over the weaker pinky. Left Hand: ╭┬──┬──┬──┬──┬──┬──╮ ││ │ │ │ │ │ │ ├┼──┼──┼──┼──┼──┼──┤ │ |│ ! │ @ │ { │ } │ + │ TODO │ ├┼──┼──┼──┼──┼──┤ │ │ `│ : │ $ │ ( │ ) • │ = ├──┤ ├┼──┼──┼──┼──┼──┤ ( ) │ ││ # │ ^ │ [ │ ] │ ~ │ │ ╰─┬──┼──┼──┼──┼──┼──┴──╯ │ │ £ │ │ │ │ ╰──┴──┴──┴──┴──╯ Also note the "TODO" and "( )" keys. They are programmed macros. eg: Pressing the "TODO" key types: // TODO: | or pressing "( )" types: (|) The | is where the edit cursor ends. On my default layer, I also have two other macros. One key triggers "Ctrl+F9" to compile my applications. The other key types: _:=_ where _ is a space character. Ergodox is how keyboards (for computers) are meant to be! 100% customization, simply and quick to customise, and very comfortable to type on. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-14 13:58, Graeme Geldenhuys wrote: Yes, and based on OpenJDK with their own additions - just like Oracle is doing. I forgot to say... But to be fair, most of the information regarding Oracle's Java releases, OpenJDK, IBM J9 etc is pretty murky. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] FPC Graphics options?
On 2017-05-14 09:36, Jonas Maebe wrote: IBM has their own JVM, J9: Yes, and based on OpenJDK with their own additions - just like Oracle is doing. It was discussed in a IBM developerWorks podcast. Here is the transcript of that podcast. https://www.ibm.com/developerworks/podcast/dwi/cm-int101510-openjdk-pdf.pdf Bottom of page 2: "Gartner: Well, IBM's been a long-time licensee from originally Sun and now Oracle, and so our existing Java implementations are based on primarily openjdk as it exists today..." Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
[fpc-other] Developer workflow with Ergodox
Hi, It's been a few months now since I got my Ergodox keyboard. Since then I was gifted a Massdrop kit, and built my second Ergodox myself. An amazing experience and very fun. For anybody thinking of using a Ergodox keyboard for programming, I can highly recommend it. It took me a couple of weeks to settle on a keyboard layout that works well for me - especially considering how often we Object Pascal developers use F-keys, keyboard navigation of source code and such. Here is my layout I've been using for a couple of months now. https://github.com/graemeg/qmk_firmware/tree/gg_dvorak/keyboards/ergodox/keymaps/gg_dvorak A few days ago I stumbled across the following YouTube video. That guy talks about using the Ergodox for programming purposes, and also mouse functionality via the keyboard (something I haven't mastered yet). He also uses layers of course (so do I), and shows very well how fast one can code even with layers - some non-Ergodox people think you can't be fast with layers. I disagree, and this guy proves it well. I also like his idea of a Shortcuts layer, using the "Hyper" or "Meh" key plus one other key. Hyper = Alt + Ctrl + Shift + Cmd/Win Meh = Alt + Ctrl + Shift all that via a single keypress. * A Hyper key, as described by Brett Terpstra. http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ * A Meh key, which is a less-hyper version of the Hyper key (sends Alt+Ctrl+Shift, without Cmd/Win). Here is the video. They keyboard layout is discussed at 3m 40s into the video. https://www.youtube.com/watch?v=78RtO38wOwI&feature=youtu.be Here is his actual layout. http://configure.ergodox-ez.com/keyboard_layouts/qgmgej/edit There is another guy that also has some very cool ideas. I really like the Shift, Ctrl and Alt keys on the home row. I quickly tried it last night, and it works surprising well and very comfortable to type. https://implementsblog.com/2016/10/16/my-ergodox-ezs-custom-layout/ Possibilities are endless. Needless to say, I've been tweaking my keyboard layout again, with even less finger movement or stretching than before. I'll give it a couple more days, and then post a link to the new layout. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] FPC git repository
On 2017-05-05 20:04, Victor Campillo wrote: > From the 1st of May the git repository is not in sync with subversion, > I think there has been some change in the svn url or something because Thanks Victor for letting me know. Yes, it seems they change the repository URL's from HTTP:// to HTTPS:// I applied the change on my server and synced both the FPC and Lazarus repositories. All should be well again. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Your thoughts on cloud based server instances?
On 2017-03-16 20:52, nore...@z505.com wrote: > Cool, is it like a quickbooks product? > Written in fpgui or lazarus lcl? No, not quite. It is called BS1 Accounts, written by a Canadian using Delphi 7 I believe. Everything is written using only standard Delphi components and reporting tools included with Delphi. NO 3rd party components at all. BS1 Accounts has been around for absolute ages, and does an amazing amount of stuff. There are now multiple versions of the product, and the one targeted for contractors (BS1 Professional Time Billing) are now free (single user license). It uses multiple different database (SQL) backends. The one I got is an embedded database (not sure what database exactly - NexusDB or something I think). http://www.dbsonline.com/accounting/ Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] [fpc-pascal] WebAssembly Target
On 2017-03-16 20:48, nore...@z505.com wrote: > With a local copy of the 2016 internet on hands hahaha That just made me remember circa 1994. I worked as a computer technician. An oldish lady walked into the shop and handed me a box of 720KB floppies - asking if I could give her a copy of The Internet. :-D Regards, Graeme ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
Re: [fpc-other] Your thoughts on cloud based server instances?
On 2017-03-13 07:46, Luca Olivetti wrote: > El 13/03/17 a les 00:15, Graeme Geldenhuys ha escrit: > Basically, it's true that there's no real transition path: ipv6 is > useless for servers since they cannot be contacted by ipv4 clients The problem lies full heartedly with the ISPs as far as I'm concerned. They are the problem and the bottleneck. They are the ones dragging their feet. Any web server software worth using supports both IPv4 and IPv6 for a very long time already. All OSes worth using have been supporting IPv4 and IPv6 for over a decade. If ISPs enabled IPv6 faster, then more companies and people can start serving content via IPv6. Pretty soon, IPv4 would end up being legacy and could be totally removed a few years later. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-other maillist - fpc-other@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other