Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Debian is always pleasant - Page 2
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Debian is always pleasant

2»

Comments

  • dev_vpsdev_vps Member
    edited October 2021

    @raindog308 said:

    @dev_vps said: 2. Running SQL Server database engine

    I might try SQL Server on Debian. Don't really feel like running Ubuntu, but I would like to give SQL Server a spin on Linux. The previous Windows Server requirement was always too much for me to bother win.

    SQL Server is the only Microsoft product I ever developed any affection for.

    PostgreSQL has, still, better windows functions for query grouping and sliding dataset retrieval. MS SQL Server is catching up, but still not as good.

    I have to deal with SQL Server since (almost) all my job roles were using SQL Server.

    One positive though, the SQL Server Express edition has lot more power and free even for production use.

  • Debian with Xfce was my only distro for 3+ years, was super happy with its super stable performance. Then distro hopped to Manjaro to endeavourOS+Xfce for my new AMD machine.

  • @raindog308 said:

    @Privacy said: CentOS is great, too

    CentOS may have been great at one point. Now it's just pointless. Alma or Rocky (or free RHEL license) are the only reasonable options for those desiring to live la vida RHEL. I can't understand why anyone would run CentOS now unless you're doing dev work for IBM.

    In my case, I had migrated most of my production systems to CentOS 8 before the announcement about the early EOL. At this point, I'm planning to convert all of them to Alma or Rocky (probably the latter) before the end of the year so they can continue to receive updates. So far, I haven't read about any big issues with the conversion process, but it still makes me a bit nervous.

  • SplitIceSplitIce Member, Host Rep

    @raindog308 said: (1) Had to uninstall my ancient 9.6 version of Pg and install the new one (a few apt commands), which the installer didn't do automatically for reasons I didn't bother to read because it was easy

    PG's database format is version specific, their upgrade process is a PITA on large databases.

    I've normally found it best to keep pg databases on a seperate box (with less frequent major updates) and with the database sourced from postgres repositories (where older versions are built for considerable addtional time). That way upgrades can corrospond with hardware upgrades and be done from one server to another.

    I suppose that could be one container to another if you are a proponent of databases inside containers...


    I quite like debian too but have been leaning towards giving arch a try for certain workloads. More frequent continuous updates is good for certain things (i.e web servers not database servers).

  • my main linux distros are debian and arch. Debian for everything long term, arch for thing that benefit from a more bleeding edge.

  • @raindog308 said: I might try SQL Server on Debian. Don't really feel like running Ubuntu, but I would like to give SQL Server a spin on Linux. The previous Windows Server requirement was always too much for me to bother win.

    SQL Server is the only Microsoft product I ever developed any affection for.

    We have been using SQL Server on Debian 10 (now upgraded to 11) for quite some time now without any issues.
    Though it contains development database, not a production one.

    I don't see any reason for SQL Server not to cooperate well with Debian repositories, tell me if you have any issues.

    Spoiler alert, when you connect to this server from Management Studio on windows, it shows Tux:

    My two cents, depending on what you are developing, try to be as much RDBMS agnostic as possible.
    Use plain old ANSI-SQL or an RDBMS-agnostic framework.

    Now regarding Debian. We live happily together for a decade or more.
    I switched to Debian from Suse and Ubuntu and never looked back ever since.
    I use it everywhere, on every server every laptop every desktop I own.
    Xfce as a primary desktop, no UI on servers.

    apt is great.

    Rock solid stable for everything, stable updates, pretty good performance and if you want more recent software you can try debian-backports.
    For desktop you can even try debian sid, but never cared to have latest packages for what I do, so I dont have much experience with that.

    Thanks Debian.

    Thanked by 1raindog308
  • First update 11.1 is out.
    BTW,read this: https://ubuntu.com//blog/how-to-make-snaps-faster

  • MaouniqueMaounique Host Rep, Veteran
    edited October 2021

    My first linux was slack 2 something, I run it on an IBM PS/2 P70, it came on a magazine CD but I had no cd unit at that time so had to transfer on diskettes at a friend's.
    The machine had only 4 mb ram and I endeavored to recompile the kernel to cut out support for newer technologies like huge ram (2 GB iirc) and many other things I didn't dream to ever have. After 3.5, though, I got a newer pc (cyrix 5x86) and a colour monitor so wanted something able to play movie clips without having to deal with the codec nightmares on slack, so due to much hype at the time i went for Mandrake, but was quickly underwhelmed by the resources used so I went Debian minimal and never looked back.
    The ability to fine tune all packages installed and filter out things was the most prized feature, slackware was kind of dated then, going back was not really exciting.
    I kept trying other distros, including LFS, specialized router ones and others for specific purposes, then discovered virtualization... Instead of having 10 obsolete and power hungry bin grade desktops I had only 3-4 :P

    Debian was always the backbone, though.

  • @yoursunny said:
    I delete snapd, lxd, cloud-init, and nano on every Ubuntu Server.

    Dafuq you got against nano?

  • yoursunnyyoursunny Member, IPv6 Advocate

    @TimboJones said:

    @yoursunny said:
    I delete snapd, lxd, cloud-init, and nano on every Ubuntu Server.

    Dafuq you got against nano?

    Bloody Nanos! Spawn of satan. Burn down the Nano factory, and exterminate anyone who sells Nanos.
    source

    I delete nano package as part of standard deployment procedure, so that visudo and sudoedit can open files in a sane text editor that does not require pressing two keys at the same time.

  • varwwwvarwww Member
    edited October 2021

    Debian stable is definitely the best rock stable distro for servers. For Desktop use, it depends on the apps you use, since the packages do get "stale". You have to rely on backports repo/appimages/snap/flatpak. I have ran Debian sid (unstable) on my main machine but it does break some packages sometimes. Debian testing - Security patches takes weeks to land on your system (major con)

    • the package manager apt is very fast compared to yum, dnf (python based) of Fedora.
    • Debian patches all the packages by removing trackers, telemetry, update checkers in packages and more annoying crap. Even more than Arch Linux.
    • Compared to Ubuntu - Debian does not have annoying ads on ssh login - https://ubuntu.com/legal/motd Debian does not force snap packages down your throat. While snap packages are a great concept, they are very slow to start. From the next release of Ubuntu (21.10), Ubuntu is forcing snap firefox over deb firefox which is going to piss off more users.

    I feel this is why most of the security/pentesting/govt. distros like Kali Linux, tails etc. base their distros on top of Debian.

    The only thing I don't like about Debian is they don't mention anything about the non-free variant of Debian on the homepage available here: https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/ which is what is needed for most laptops for Wifi/Bluetooth Compatibility. A new user would download Debian and realize Wifi does not work and thinks "Debian is crap, wifi/bluetooth does not work" and then moves to Ubuntu.

    Thanked by 2raindog308 bulbasaur
  • Daniel15Daniel15 Veteran
    edited October 2021

    @raindog308 said: SQL Server is the only Microsoft product I ever developed any affection for.

    At my job 10 years ago, I had to deal with SQL Server on Windows Server 2003/2008, and I do miss it sometimes. I have never seen any query profiling tools that are anywhere near as good as the tools in SQL Server Management Studio.

    @TerokNor said: My two cents, depending on what you are developing, try to be as much RDBMS agnostic as possible.
    Use plain old ANSI-SQL or an RDBMS-agnostic framework.

    You miss out on a LOT of features if you do this though. Also, DDL statements like CREATE TABLE/CREATE VIEW almost always have DBMS-specific stuff in them, and stored procedures are always DBMS-specific as they're not specified in any SQL standard. (whether stored procedures are good or not is another discussion altogether)

    Having a framework (whether that's an ORM framework or something else) that generates the right SQL based on the DBMS is useful, but if you're set on using one particular DBMS, you should really use it to its full capability, particularly if it's a paid system (no point paying for SQL Server only to just use all the same features available in MySQL).

    Thanked by 1raindog308
  • TerokNorTerokNor Member
    edited October 2021

    @Daniel15 said: You miss out on a LOT of features if you do this though.

    Yes I agree with you. It depends on the project, however after 20 years or so, of developing large systems, I think that in the lorg term we regretted using all those exotic features, we regretted even about stored procedures, and we regretted that we had to be bound on a specific RDBMS of a specific company who charges our clients a few kidneys per cpu core, because we became larger, our system became larger and our clients became larger.

    In our latest products we've replaced stored procedures and DDL with our own developed framework and we do not miss SP spaghetti at all. In large systems it turns out to be nightmare.

  • TimboJonesTimboJones Member
    edited October 2021

    @yoursunny said:

    @TimboJones said:

    @yoursunny said:
    I delete snapd, lxd, cloud-init, and nano on every Ubuntu Server.

    Dafuq you got against nano?

    Bloody Nanos! Spawn of satan. Burn down the Nano factory, and exterminate anyone who sells Nanos.
    source

    I delete nano package as part of standard deployment procedure, so that visudo and sudoedit can open files in a sane text editor that does not require pressing two keys at the same time.

    You've just confirmed you are, in fact, a robot.

    I would call you all-time lazy, but I know that's not true given how much effort you put into $6 VPS and push-ups. As a Windows user (and should be the same for MAC ppl), pressing two keys is muscle memory (its one hand!) for efficiency. I'm flabbergasted that was your reason to hate nano.

  • raindog308raindog308 Administrator, Veteran

    @TerokNor said: Yes I agree with you. It depends on the project, however after 20 years or so, of developing large systems, I think that in the lorg term we regretted using all those exotic features, we regretted even about stored procedures, and we regretted that we had to be bound on a specific RDBMS of a specific company who charges our clients a few kidneys per cpu core, because we became larger, our system became larger and our clients became larger.

    I'm guessing that specific RDBMS company's name starts with an O.

    In our latest products we've replaced stored procedures and DDL with our own developed framework and we do not miss SP spaghetti at all. In large systems it turns out to be nightmare.

    I respect this approach for the advantages you mention. But as @Daniel15 notes, it's

    • not completely practical because DDL is typically vendor-specific. For example, you'd implement an auto-incrementing field completely different in MySQL vs. Oracle, some RDBMS systems have UUID/Identity types and some don't, number min/maxes can be different, etc.

    • lowest-common denominator feature design can result in horrible performance

    • large customers will probably have DBAs on staff who will expect to exploit their platform's capabilities, which you are hobbling to some extent. (e.g., partitioning, indexing strategies, etc.)

    • even setting the right tuning parameters on the DB assumes the users are using the platform intelligently.

    It's fairly rare to write a system that supports many RDBMS platforms. Often an industry vertical app will only support one, or in most cases two (typically SQL Server for Windows-heavy shops and something else like Oracle, Pg, etc. for non-Windows shops).

    I guess it really depends on how hard you drive your DB. Not every app is doing tons of updates, queries, etc. so if you're just using it to dump and load small amounts of data, it probably doesn't matter. But if you're doing some massive inventory management system or accounting application, this approach seems problematic to me.

    I once supported a very famous ERP system that went to the ultimate extreme: not only LCD design but no foreign keys in the DB, only CHARS/integers in the DB, etc. Even table names were kept to a maximum of 8 chars, which resulted in indecipherable schemas. Ultimately, no one could understand or support their DB from a DBA perspective, which meant the company soon became famous for making tons of revenue in consulting fees because only their own staff could understand their DBs.

  • raindog308raindog308 Administrator, Veteran

    @TimboJones said: As a Windows user (and should be the same for MAC ppl), pressing two keys is muscle memory (its one hand!) for efficiency. I'm flabbergasted that was your reason to hate nano.

    I hate nano because it's the Notepad of Linux editors: feature-incomplete and a chore to use if you are beyond the utter basics.

    I honestly didn't realize Debian shipped with it. But I'm not as passionate as @yoursunny about eradicating it.

  • @raindog308 said: I'm guessing that specific RDBMS company's name starts with an O.

    There's a Couchbase billboard ad along highway 101 in Silicon Valley that says "Au revoir, au-racle" and I'm amused every time I see it.

    Thanked by 1TimboJones
  • @Daniel15 said:

    @yoursunny said:

    @mcgree said:
    I installed snap on Debian and it was also a very good experience.

    I deleted snapd on Ubuntu and it was a good experience.
    I don't understand what snapd is for and why we need snapd, and the system works fine without it.

    The only thing I know about snapd is that apparently it's the only supported way to use LXD on Debian

    TBH, this is what I came across also and it was an insane pain in my assholes. Sometimes Ubuntu is really the path of least resistance..

  • yoursunnyyoursunny Member, IPv6 Advocate

    @TerokNor said:

    @Daniel15 said: You miss out on a LOT of features if you do this though.

    Yes I agree with you. It depends on the project, however after 20 years or so, of developing large systems, I think that in the lorg term we regretted using all those exotic features, we regretted even about stored procedures, and we regretted that we had to be bound on a specific RDBMS of a specific company who charges our clients a few kidneys per cpu core, because we became larger, our system became larger and our clients became larger.

    In our latest products we've replaced stored procedures and DDL with our own developed framework and we do not miss SP spaghetti at all. In large systems it turns out to be nightmare.

    In 2009-2011, I tell the vendor/developer that they must use stored procedures, and cannot use SQL statements at all.
    In fact, the SQL Server account assigned to web applications is prohibited from executing anything that is not a stored procedure.
    SQL injection vulnerabilities disappeared completely since this policy is adopted.

    I don't worry about kidneys because we are a branch of Microsoft Corporation.
    With few exceptions, Microsoft products are activated automatically once connected to the network.

  • Daniel15Daniel15 Veteran
    edited October 2021

    @yoursunny said: SQL injection vulnerabilities disappeared completely

    Hopefully you didn't have stored procedures that dynamically generate SQL, as then it becomes a risk again :P . I had to deal with a stored proc like that at a previous job. They had a highly customizable table - Sortable by multiple columns, columns could be hidden, pagination (which was actually really hard in the old SQL Server days), etc and the stored procedure dynamically generated the SQL for that exact view, with the correct ORDER BYs, only selecting the columns and only doing the joins that are actually needed. Everyone was too scared to deprecate it and move the query generation logic to C#, so it was still in use 15 years after it was written, with some parts of it dating back to the SQL Server 2000 era. I worked there from 2010-2012 and I'm 90% sure the same stored proc is still in use today.

    Anyways, SQL injection should really not be an issue these days given every RDBMS has some support for prepared statements.

  • @yoursunny said: Ubuntu has an expansive PPA system that allows software publishers to upload source code, and they'll build binary packages for every platform and host them for free; this process does not require reviews. There's no PPA equivalent in Debian. LLVM and nginx can afford to run their own Debian package repository, but not smaller publishers.

    Debian has more packages in offical repo than Ubuntu and covers more architectures.
    Whenever a packages is needed for arm ubuntu search for debian repo to find more updated binary than ubuntu repo.

    Official Debian Packages Reposisotry:
    https://www.debian.org/distrib/packages
    Official Ubuntu Packages Repository:
    https://packages.ubuntu.com

    Official Packages Repository for Debian 11 ( "Bullseye" | Current Stable ) :
    https://packages.debian.org/bullseye/
    Official Packages Repository for Ubuntu 21.04 ( "Hirsute Hippo" | Current Stable ):
    https://packages.ubuntu.com/hirsute/

    Packages Count by Name ( from official compressed file ):
    Debian 11 ( "Bullseye" ): 96723 ( https://packages.debian.org/stable/allpackages?format=txt.gz )
    Ubuntu 21.04 ( "Hirsute Hippo" ): 94974 ( https://packages.ubuntu.com/hirsute/allpackages?format=txt.gz )

    Supported Architectures:
    Debian : https://wiki.debian.org/SupportedArchitectures
    Ubuntu : https://help.ubuntu.com/community/SupportedArchitectures

    Ports:
    Debian: https://www.debian.org/ports/
    Ubuntu: http://ports.ubuntu.com/

    Thanked by 1TimboJones
  • yoursunnyyoursunny Member, IPv6 Advocate

    @Daniel15 said:

    @yoursunny said: SQL injection vulnerabilities disappeared completely

    Hopefully you didn't have stored procedures that dynamically generate SQL, as then it becomes a risk again :P . I had to deal with a stored proc like that at a previous job. They had a highly customizable table - Sortable by multiple columns, columns could be hidden, pagination (which was actually really hard in the old SQL Server days), etc and the stored procedure dynamically generated the SQL for that exact view, with the correct ORDER BYs, only selecting the columns and only doing the joins that are actually needed. Everyone was too scared to deprecate it and move the query generation logic to C#, so it was still in use 15 years after it was written, with some parts of it dating back to the SQL Server 2000 era. I worked there from 2010-2012 and I'm 90% sure the same stored proc is still in use today.

    The SQL Server account is not allowed to run SQL statement, so that dynamically generated SQL statements won't run.
    Moreover, the vendors aren't smart enough for these.
    They only make simple websites, like pressing a button and receiving a coupon.

    The no-SQL rule was subsequently loosened if the website is using an ORM (Object-relational Mapper) library to interact with the database.
    In this case, I would check with a static analyzer that there's no direct calls to System.Data.SqlClient.

    Anyways, SQL injection should really not be an issue these days given every RDBMS has some support for prepared statements.

    Since 2012, I use prepared statements for almost everything.
    ORDER BY still needs dynamic SQL concatenation though.


    @devp said:

    @yoursunny said: Ubuntu has an expansive PPA system that allows software publishers to upload source code, and they'll build binary packages for every platform and host them for free; this process does not require reviews. There's no PPA equivalent in Debian. LLVM and nginx can afford to run their own Debian package repository, but not smaller publishers.

    Debian has more packages in offical repo than Ubuntu and covers more architectures.
    Whenever a packages is needed for arm ubuntu search for debian repo to find more updated binary than ubuntu repo.

    Debian doesn't have every package in Ubuntu PPA, because inclusion in Debian official repository requires reviews, but not every software publisher would bother with this review.

  • @yoursunny said: Debian doesn't have every package in Ubuntu PPA, because inclusion in Debian official repository requires reviews, but not every software publisher would bother with this review.

    Correct.

    Lots of publisher packages and different versions in both repositories.

  • raindog308raindog308 Administrator, Veteran

    @Daniel15 said: dynamically generate SQL

    The DBA in me dies a little every time I hear this phrase.

    @yoursunny said: ORDER BY still needs dynamic SQL concatenation though.

    Then you're not using prepared statements.

    I don't think you are...I mean, engines could hash everything except this clause and then process it in the final sort stage. But I don't think they do, so you're recompiling that SQL every time you submit it if it the ORDER BY changes.

    Thanked by 1yoursunny
  • raindog308raindog308 Administrator, Veteran

    @Daniel15 said: There's a Couchbase billboard ad along highway 101 in Silicon Valley that says "Au revoir, au-racle" and I'm amused every time I see it.

    I got this shirt from their booth - ironically at Oracle's OpenWorld convention - or it may have been CouchDB. I don't remember and the shirt has long since worn out.

    Nothing I've ever worn has provoked so many conversations from random strangers in coffee shops. You'd have thought I was proposing bring back the draft or universal nudity or something. I stopped wearing it in public because I got tired of amateur database theorists wanting to talk to me like I was Lenin in a Vienna coffeehouse.

    nosql

  • @raindog308 said: But if you're doing some massive inventory management system or accounting application, this approach seems problematic to me.

    Well, as everything, it depends. It's a very long and interesting discussion, however out of scope of this thread. I admit I was wrong to make assumptions about your experience and giving you advises (sorry about that), but when someone shows some affection for some commercial closed source program, my modus operandi is to automatically response with "don't make deals with the devil"

    Of course it might not work well for every use case scenario, and I am in an age that I hate to have strong opinions on something, especially software architecture related. However we've done extensive tests and benchmarked some crazy ideas before we proceed with something like this

    Generally speaking, SQL is turing complete , so you might actually think that you might try to write everything in SQL.

    Of course you know that because you can do something, it's not always a good idea to do it. It's a matter of taste, philosophical principles, maintainability, security and of course performance to decide how to do things. In general you cannot have all at the same time and it's not always clear cut.

    So in general there is a spectrum of what to do in SQL and what to do in the programming language. But how do you draw these borders? What do you gain and what you lose in either of the aforementioned terms in a specific software for a specific purspose?

    I know that the DBA in you will hate it, but the main idea in our case, after we drew these borders and making some assumptions (good or bad, it's a matter of philosophical debate), is to describe the statement in a syntax that abstractly resembles SQL (think of something like linq to sql) and the framework is responsible

    • to generate the appropriate SQL for the specific RDBMS, exploiting things that work well in this specific RDBMS. (We do not support every RDBMS out there, but at least we are not bound to that unmentionable one and it's generally not very hard to extend it to support more in the future)

    • to (try its best) to map language types with supported types by the back end RDBMS

    • to not allow you to do things that we discussed and decided that it's not good to be done in SQL, or to force you do things in a specific way. (In general we try to follow the "SQL is not a calculator" principle.)

    • to optimize things that are known in the runtime but cannot be known inside the stored procedure

    Although it may sound like a terrible idea at first, it proved to work very well for us in really heavy usage. Developers looked at it puzzled at first, but they are more happy using this instead of writing SQL (it integrates beautifully with the language) and it's much more maintainable and clean than a bunch of a few thousands of stored procedures.

    Is it perfect? No. We are not in a perfect world.

    However, I have to point out that there are situations that it outperforms precompiled stored procedures by orders of magnitude. See parameter sniffing for example, or situations where behind one single front-end form, there are hundreds of JOINs with various peripheral tables with hundreds of columns and criteria but the end-user actually uses a couple of criteria and a few columns before the query optimizer surrenders to its fate.

    Thanked by 1raindog308
  • @raindog308 said:

    @TimboJones said: As a Windows user (and should be the same for MAC ppl), pressing two keys is muscle memory (its one hand!) for efficiency. I'm flabbergasted that was your reason to hate nano.

    I hate nano because it's the Notepad of Linux editors: feature-incomplete and a chore to use if you are beyond the utter basics.

    I honestly didn't realize Debian shipped with it. But I'm not as passionate as @yoursunny about eradicating it.

    Yes, the more humane way is leaving nano for the occasional simplicity and use your profile to export your preferred editor.

  • @raindog308 said:
    Nothing I've ever worn has provoked so many conversations from random strangers in coffee shops. You'd have thought I was proposing bring back the draft or universal nudity or something. I stopped wearing it in public because I got tired of amateur database theorists wanting to talk to me like I was Lenin in a Vienna coffeehouse.

    nosql

    At coffee shops in Oregon? That checks out.

  • @TimboJones said:

    @raindog308 said:

    @TimboJones said: As a Windows user (and should be the same for MAC ppl), pressing two keys is muscle memory (its one hand!) for efficiency. I'm flabbergasted that was your reason to hate nano.

    I hate nano because it's the Notepad of Linux editors: feature-incomplete and a chore to use if you are beyond the utter basics.

    I honestly didn't realize Debian shipped with it. But I'm not as passionate as @yoursunny about eradicating it.

    Yes, the more humane way is leaving nano for the occasional simplicity and use your profile to export your preferred editor.

    # update-alternatives --config editor works well for me for changing the default editor system-wide for most cases while also allowing me to keep nano around.

    NOTE: The package with the editor of your choice needs to be installed first before it appears in the list of possible choices, iirc.

Sign In or Register to comment.