From owner-freebsd-questions@freebsd.org Mon Jul 13 22:39:42 2020 Return-Path: Delivered-To: freebsd-questions@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B4860373DCE for ; Mon, 13 Jul 2020 22:39:42 +0000 (UTC) (envelope-from aryeh.friedman@gmail.com) Received: from mail-il1-x12a.google.com (mail-il1-x12a.google.com [IPv6:2607:f8b0:4864:20::12a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4B5JVj5ggqz4dFb for ; Mon, 13 Jul 2020 22:39:40 +0000 (UTC) (envelope-from aryeh.friedman@gmail.com) Received: by mail-il1-x12a.google.com with SMTP id k6so12647385ili.6 for ; Mon, 13 Jul 2020 15:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=mHI0ohJbNM2sbdxVdfGMntYxsUW91TT5UQ6S013ZPRE=; b=EdGnE0ZaeKZa/FsU1Gs0bYyo7BqLoetaN6JX5IvThpTusl7TfR75zWDcrRl/v2jgMZ AWjOzGP+Ok1/hmDoCJpkq//nXoZjz1JjDLB4LuYYASesCohAikwzFTmxCpSSGVsJXaFr Z/a+veWG8e0JIuRLhAnWuNrM0UFF1Pxtj2sGT7Bb6uLXMQxLeSnWcOny/UTIY3FtqkjR pP3EJ0UfWGRYjqGvgFZfVddXi4uCmvax1cHQ9yA917OOCXnFrRN7eYQtUPvChYbT/edq /dvqEdPbZXtJ+Bgbeop/IckK2UuPzKaKV8mePW4/vmFkyVsheO/SxAN78IJzM4nbeLjB rx5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=mHI0ohJbNM2sbdxVdfGMntYxsUW91TT5UQ6S013ZPRE=; b=prchdrTIrmSV1YON6lofh5LqoMpW8CAn2lJRfklsvbs8i2/0+S9xxSgZGATpKJjaF9 W4ZeSRMLFs09lTIJt+PzyA850cLUPdpuyFLW2eheDCsWQmb75XU9frCPOBMlqkTDHlM0 tTZsostgvGSmUg5VognfcED2X7rU1NQWS66AqUAl3DPwHoSCe5ngbDvYSZyhXMyAIJGZ zNQpDo8fcvVtU7x44VXZbxV9L6LWxranIftbDfn9HBFT2v0LHjI+laXWeOfG6cr95G8r Zg3b8DWyhzod8J7vaMPF/B0Tqdrt95iwb1u5J+WAWFgEvGXEw3X5KeIRvuv5h8GmuH5s lHCQ== X-Gm-Message-State: AOAM530KmLtI5i6vhKHtkIrgC44v6gs8CGt2nBbiWLnZXUUp7yPXSDui q5DXDcHPMropo6llKRkfPen5zpF60V+ya9lfxfO9Q2PQ2/U= X-Google-Smtp-Source: ABdhPJwbs6tU8ejpQsUIzVGLWRNPVijKcUI+GdGqK91mJHec8vcVbRHC8RFrmhU6kjBjR3Vdwy43ruRXkD9IZ2KxiAM= X-Received: by 2002:a92:4913:: with SMTP id w19mr1858718ila.185.1594679978939; Mon, 13 Jul 2020 15:39:38 -0700 (PDT) MIME-Version: 1.0 References: <5a761348-fb9f-5cf3-e035-7ba42afcb221@gmail.com> <8fcd60d7-1de1-82dc-d840-2555663ac153@gmail.com> In-Reply-To: <8fcd60d7-1de1-82dc-d840-2555663ac153@gmail.com> From: Aryeh Friedman Date: Mon, 13 Jul 2020 18:39:26 -0400 Message-ID: Subject: Re: Petite Cloud, CBSD, Intellij To: Don Wilde , Brandon helsley Cc: FreeBSD Mailing List X-Rspamd-Queue-Id: 4B5JVj5ggqz4dFb X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=EdGnE0Za; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of aryehfriedman@gmail.com designates 2607:f8b0:4864:20::12a as permitted sender) smtp.mailfrom=aryehfriedman@gmail.com X-Spamd-Result: default: False [-3.63 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.96)[-0.957]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-questions@freebsd.org]; NEURAL_HAM_LONG(-1.00)[-0.995]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::12a:from]; NEURAL_HAM_SHORT(-0.68)[-0.676]; FREEMAIL_TO(0.00)[gmail.com,hotmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TAGGED_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.33 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2020 22:39:42 -0000 On Mon, Jul 13, 2020 at 6:16 PM Don Wilde wrote: > > On 7/13/20 2:49 PM, Aryeh Friedman wrote: > > > > On Mon, Jul 13, 2020 at 12:46 PM Don Wilde wrote: > >> >> On 7/13/20 5:59 AM, Brandon helsley wrote: >> > >> > >> > >> > Hi Aryeh, I wanted to ask you a few questions. I remember you telling >> me about the program petite cloud and was wondering if you would show me >> how it works. I found CBSD and Intellij projects and want > > > I will answer this as a separate message later today. > > to know more about how they work too and find anymore programs available >> on freebsd like these if you know of any. Could you remind me of how to >> change the settings in thunderbird so I'm not top posting and replying >> correctly too? >> > >> >> Actually, I see evidence in the ports tree that there is some support >> for hosting JetBrains' IDEs on FreeBSD, but I haven't looked hard as I'm >> not building a desktop at this time. Since they are written in Java, >> that should not be difficult. >> >> >> # find /usr/ports -name "*jetbrains*" >> >> # find /usr/ports -name "*intellij*" >> > > There are a number of Java IDE's in the ports collection... everything > from the (bad) attempt to do everything and be everything to everyone of > Eclipse to the simplicity of BlueJ. Almost none of them quiet "work". > They all have some serious sort coming, e.g. all of them I have tried > except BlueJ can't produce a standalone executable jar to save their lives > nor do many of them give you freedom to use whatever tools you want under > the hood (i.e. version control can only be done via git and none play well > with batched build systems). That's why I don't use a IDE I use the > command line, it is a lot more powerful/more portable in the long run then > any IDE ever will be (unless you count the semi-integrated one I have put > together by hand consisting of tcsh, java/openjdk8 [slowly playing with > moving to a higher version], www/tomcat9 [tomcat is typically the target of > my code], editors/vim, devel/cook, devel/aegis and devel/fhist [note I am > the maintainer of the last 2]... I usually don't need to but I also can > bring out the big guns for debugging like java/visualvm and java/jad). > Note cook/aegis/fhist are unorthodox when used with Java but I can (and > often will) make strong arguments to why the "official" tools *SUCK*. > > All this being said if you feel more comfortable with an IDE while > learning Java I recommend BlueJ it is designed for teaching Java but has > all the features you need to make full fledged applications of any size > with (when I was in school I even implemented a interpreter for a teaching > language I designed and wrote a visual Turing Machine simulator with it... > both non-trivial applications). BlueJ has one "killer feature" in my mind > and that is it is the only IDE I know of that will automatically > draw/update a simplified UML class diagram of your code (very useful if you > are in the very early stages of the class level architecture of a larger > app). For more info on BlueJ (and the book mentioned below) go to > bluej.org .. last note BlueJ is one of the few that actually produces > working executable standalone jars. > > If you are learning Java and even if you don't use BlueJ I recommend the > entry level (no programming experience needed) textbook written by the same > person who maintains BlueJ upstream. "Objects First with Java: A Practical > Introduction Using BlueJ (6th Edition)", David J. Barness, Michael Kolling, > Pearsons, 2016, ISBN: 978-013-447736-7 ... it is the book I used when I > learned Java even though I had been programming for 20 years at the point I > found the book a breath of fresh air in terms of how things are covered. > Even though I have not read it yet (I have read other more advanced books > in the same series) another good learning source is "Head First Java" > (O'Reilly ... don't have a full citation on hand). > > I've never used IntelliJ itself, only Eclipse for Java and Enterprise > Architect (payware). > > MPHO is that I stay as far away from Java as I can, although I do use > tools _written_ in Java like RubyMine (and Eclipse). > > I was tasked with maintaining the JVM for a large IoT project (mainly > because nobody else would touch it; they _knew_); Java7 was used both for > the Things and the Internet analytics servers. The JVM is written (as is > OpenJDK) in layer upon layer of code, and what we discovered was that one > layer or another was always being broken by all the various open source > developers. When our CEO laid off all my backups to please Wall Street, I > gave my notice. Java has many slick features, but it takes a _lot_ of Java > coders to get anything big done. YMMV. > Then whoever you hired to do the coding is/was *INCOMPETITENT* I am a team of 2 that maintains a EMR (medical records) system with IoT support (200+K lines code, as per our code coverage tool) the IoT is portable long term (upto 30 days) cardiac testing equipment that communicates via the cell network and it works just fine. The above even includes a custom JSON driven heiractical API/DB package (part of PetiteCloud). The above EMR has been in service for over 8 years now and uses OpenJDK 8 and Tomcat 9 on FreeBSD 12.1 (was on 11.X and 10.X before that). I really wish people who never learned how to use Java correctly (IDE generated code *IS NOT* correctly) would reserve judgement on the language before seeing it in an environment it was designed for (not one it was not designed for) and despite Oracle's claims it's natural home is webapps w/ very deep backends. Side note Java has succeeded because it is a good language, one the few that "serious" software engineering can be done in (C/C++ are very difficult in this regard due to inherently unsafe features like pointers and goto), not because it has "slick" features. In other words it has succeeded despite Sun/Oracles best attempts to completely mismanage and mismarket the project! > > pkg install bluej... number of packages to be installed: 47. Wow. I think > not. :) > Which is no worse than any other GUI based app (you would never use an IDE outside of a GUI anyways)... from a machine that already has xfce4 set up and running and nothing more than openjdk8 installed on the Java side I get (keep in mind I normally use portmaster and sometimes there are small disagreements between it and pkg thus the total install is likely smaller): root@neomarx:~ # pkg install bluej Updating FreeBSD repository catalogue... Fetching meta.txz: 100% 916 B 0.9kB/s 00:01 Fetching packagesite.txz: 100% 6 MiB 822.9kB/s 00:08 Processing entries: 100% FreeBSD repository update completed. 32009 packages processed. All repositories are up to date. Updating database digests format: 100% The following 5 package(s) will be affected (of 0 checked): Installed packages to be REMOVED: dee: 1.2.7_16 New packages to be INSTALLED: bluej: 4.1.1 openjfx8-devel: 8.u202.b07_6,1 Installed packages to be DOWNGRADED: akonadi: 20.04.3 -> 20.04.2 sndio: 1.7.0 -> 1.6.0 Number of packages to be removed: 1 Number of packages to be installed: 2 Number of packages to be downgraded: 2 > > Personally, I like the LLVM-based CLANG and Crystal. Most of > the installation time comes from the various versions of LLVM being > requested by the HLL. IMHO, the LLVM is a much more flexible and accessible > virtual execution engine than Oracle's Java and JVM. > C/C++ most certainly are not beginner friendly languages and the OP is someone who has never done programming before. -- Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org