Discover how Kubernetes continues to shape the industry as developers drive innovation and prepare for the future of K8s.
Observability and performance monitoring: DZone's final 2024 Trend Report survey is open! We'd love to hear about your experience.
Stats
Reputation: | 7332 |
Pageviews: | 1.7M |
Articles: | 65 |
Comments: | 63 |
Low-Code Development
Development speed, engineering capacity, and technical skills are among the most prevalent bottlenecks for teams tasked with modernizing legacy codebases and innovating new solutions. In response, an explosion of “low-code” solutions has promised to mitigate such challenges by abstracting software development to a high-level visual or scripting language used to build integrations, automate processes, construct UI, and more. While many tools aim to democratize development by reducing the required skills, others seek to enhance developer productivity by eliminating needs such as custom code for boilerplate app components. Over the last decade, the concept of low code has matured into a category of viable solutions that are expected to be incorporated within mainstream application development. In this Trend Report, DZone examines advances in the low-code space, including developers' perceptions of low-code solutions, various use cases and adoption trends, and strategies for successful integration of these tools into existing development processes.
Modern Web Development
The web is evolving fast, and developers are quick to adopt new tools and technologies. DZone’s recent 2021 Modern Web Development survey served to help better understand how developers build successful web applications, with a focus on how decisions are made about where computation and storage should occur.This Trend Report will help readers examine the pros and cons of critical web development design choices, explore the latest development tools and technologies, and learn what it takes to build a modern, performant, and scalable web application. Readers will also find contributor insights written by DZone community members, who cover topics ranging from web performance optimization and testing to a comparison of JavaScript frameworks.Read on to learn more!
Data Persistence
At the core of every modern application is an endless, diverse stream of data and with it, an inherent demand for scalability, increased speed, higher performance, and strengthened security. Although data management tools and strategies have matured rapidly in recent years, the complexity of architectural and implementation choices has intensified as well, creating unique challenges — and opportunities — for those who are designing data-intensive applications.DZone’s 2021 Data Persistence Trend Report examines the current state of the industry, with a specific focus on effective tools and strategies for data storage and persistence. Featured in this report are observations and analyses of survey results from our research, as well as an interview with industry leader Jenny Tsai-Smith. Readers will also find contributor insights written by DZone community members, who cover topics ranging from microservice polyglot persistence scenarios to data storage solutions and the Materialized Path pattern. Read on to learn more!
Comments
Jul 17, 2023 · Thomas Hansen
When you're on a time schedule, you don't have time to "browse", but you need "fast information" - StackOverflow is better than WikiPedia here, but not optimal. WikiPedia is a hot smoking pile of garbage here ...
Jul 17, 2023 · Jasper Sprengers
The title is spot on!!
Jul 13, 2023 · Thomas Hansen
Thx Michael :)
As to your question; I don't know? What do your startup do?
Jul 11, 2023 · Thomas Hansen
The source parts is a crucial part of its implementation yes ^_^
Jun 14, 2023 · Thomas Hansen
Thank you :)
Apr 19, 2023 · Thomas Hansen
Thank you, we are an amazing team yes :)
Sep 28, 2022 · Thomas Hansen
Hehe, I never did c64, my thing was Amstrad CPC464 ... :)
Sep 28, 2022 · Thomas Hansen
Najs one, you really found your thing, just like me - And yes, it's really that "simple". For the youngsters out there, I can only reiterate what Sergio said; Keep on coding ;)
Apr 05, 2022 · Thomas Hansen
Interesting. I'd never dream of using anything but some distributed things such asCassandra for such things. Thx for the info ...
Mar 26, 2022 · Thomas Hansen
Brute force intrusion is only one aspect of the problem. Google Rainbow Dictionary Attacks ...
Mar 10, 2022 · Thomas Hansen
Well, the whole idea is kind of to get rid of rules and validators, to allow for people to create passwords with maximum entropy the way they see fit themselves - But yes, thank you :)
Mar 09, 2022 · Thomas Hansen
The exponent becomes numbers of entities, the base your entities permutations. With a passphrase I assume stuff such as "foo bar howdy world hello barn" - At which point your base is "number of words in English language" and your exponent "number of words" (6 for my example) - Equalling 460,000 to the power of 6, becoming an *INCREDIBLY* large number, so yes a passphrase (assuming we agree upon what they are) would help here ... ^_^
Mar 06, 2022 · Thomas Hansen
Well, that's one example ...
Feb 11, 2022 · Jasper Sprengers
Luved it. I remember when I first read Joel's blog, and I so insanely disagreed with his conclusion I think a broke a couple of keys on my keyboard in the process. This is a much better middle ground I'd say :)
Dec 15, 2021 · Thomas Hansen
Sorry, it was bought last year ...
Dec 15, 2021 · Thomas Hansen
Offsets are 10, limits are 10, besides from that, the above is the exact queries. The "x, y, z" parts are every single column in the respective tables, in alphabetical order ...
Dec 15, 2021 · Thomas Hansen
The queries are simple "select x, y, z from q offset w limit e". The first paging does an inner join on both referenced fields, and ads the first text column it finds from the joined table.
Dec 15, 2021 · Thomas Hansen
You are correct, and I say these things out multiple times, both in the video, and in written text. However, to test millions of records, I'll need a database with millions of records. I don't have that database, especially a database that is the exact same in both PgSQL and MySQL. So doing such a test would be impossible for me.
When that is said, I would expect PgSQL to outperform MySQL if tuned correctly, with millions of records. However, I would also expect PgSQL to outperform MySQL in this test ...
Nov 03, 2021 · Thomas Hansen
I am not equating OOP with SOLID, what I am claiming is that if you need best practices such as SOLID and Design Patterns, this is a symptom of that something else is wrong. Perfect things doesn't require a "manual", Design Patterns and SOLID is a "manual". However, yes it is a bit flamebait'ish in nature, and I don't honestly believe everything I say, but the problem I am trying to pinpoint is that OOP doesn't solve everything, and that sometimes it is required to think outside of the box. Too many believe OOP is the one stop shop to solving all their problems though, and an article such as this, might make them change their minds about it ...
... at least these were my hopes ...
Nov 01, 2021 · Thomas Hansen
Interesting library. I see his first commit was the 19th of March 2014. This was 5 almost years after I first conceptualised Active Events in the (open source) project referred to as Ra-Brix. When I later got to write an article about it at MSDN magazine (2017), nobody had heard of it, to the extent of that Microsoft's editor had to write a "possible fruit cake warning" in order to publish the article, since "nobody" had seen it before ...
https://docs.microsoft.com/en-us/archive/msdn-magazine/2017/march/patterns-active-events-one-design-pattern-instead-of-a-dozen
An article that BTW was "destroyed" by its readers, proclaiming I was (more or less) crazy ...
Interestingly, all of you guys, every time you comment, seem to register your accounts the same day you comment on my posts may I add too ...
Oct 22, 2021 · Thomas Hansen
I think I am quoted in the C++ std, and I started coding in assembly 33 years ago, on an Amiga 500. There's a link on Bjarne Stroustrup's homepage to my GUI library as an example of "how to correctly create a GUI library for C++", and I have written 6 articles for Microsoft about C#. I think I know more about "levels" than you ...
... compared to Hyperlambda, C# and Java is the equivalent of CISC x86 machine code ...
Oct 22, 2021 · Thomas Hansen
Besides, you (probably) just proved me right in regards to "bad investment syndrome" ...
Oct 22, 2021 · Thomas Hansen
Most of my career I've been cleaning up over complicated, astro architected code, that was originally devised because of over complicated, way too flexible APIs, resulting in entangled spaghetti and garbage results, due to misunderstandings related to library consumptions and SDKs. Respectfully, but I think I am entitled to do a little bit of "self-entitled whining" ...
But yes, I am very passionate about bad code ...
Did you see the video? If so, feel free to prove e wrong though ...
Oct 18, 2021 · Thomas Hansen
Well, it's also about being honest too I think. I'm playing around with an article in my head that'll be named "How the slowest programming language became the fastest", etc ...
Thank you :)
Oct 18, 2021 · Thomas Hansen
Hehe, I thought you'd say "Pan Galactic Gargle Blaster", my favourite from the other side of the universe ... ;)
Sep 22, 2021 · Lipsa Das
Lovely writeup, but you should have added not automating repetetive tasks, possible to automate ...
Sep 20, 2021 · Tyler Hawkins
Very interesting read!
Aug 13, 2021 · Kevin Montalbo
Very clear explanation. Luv it ^_^
Psst, follow my profile to see my thoughts, and tools in this space :)
Aug 13, 2021 · Lauren Forbes
Thx mate, I try ^_^
Aug 13, 2021 · Lauren Forbes
Bookmarked to use for future references. I was surprised by content length ... :)
Aug 10, 2021 · Pallavi Sengupta
Awesome article Pallavi. You should follow my profile, to see my thoughts about this ... :)
Apr 05, 2021 · Thomas Hansen
Sorry, I published the article before the YouTube video was finished processing. If it's got bad quality, just come back 15 minutes from now or something to watch it again ... :/
Mar 11, 2021 · Melissa Habit
Psst, I try ^_^
Mar 03, 2021 · Melissa Habit
Maybe, loved child has many names. I've only heard about it as materialised path though ...
Feb 22, 2021 · Thomas Hansen
Not very convincing, wax harder ... ;)
Dec 04, 2020 · Thomas Hansen
Yes exactly! And the result is that you end up with temporary projection code, in both your database, and your business logic code, resulting in spaghetti solutions after a while - Especially since phone numbers are merely one example. And in a mature application, you typically end up with hundreds of such changes after a while.
But yes, everything is solvable - Though some solutions tends to create more problems than the number of problems they solve ;)
Sep 24, 2020 · Hristiyan Pehlivanov
CQRS, and for that matter Micros Services, are the single most abused design pattern and architectural principles, ever created. It sometimes feels that developers are trying to "fill up their CV", and hence overcomplicates things into absurdity, when a good old simple CRUD solution would suffice ...
95% of all apps I've seen that implemented Micro Services, and/or CQRS, only became more complicated, and never needed it in the first place :/
Sep 24, 2020 · Thomas Hansen
Hehe, I rest my case :D
Psst, Magic generates an Angular frontend for you too. Not that I think you care, but others might read these comments ^_^
Sep 24, 2020 · Thomas Hansen
Great work :)
As to if this is an infomercial? Yup! But it also contains valuable general information. Did you checkout Magic BTW?
Sep 15, 2020 · Thomas Hansen
Actually, many organisations, also larger and more mature organisations, have this as a policy. In some organisations your pull requests won't even be accepted if the reviewers find "dirty code" over or beneath your changes - As in code you're not even responsible for yourselves.
I'm not saying you're wrong, I'm just saying there are different approaches to these issues, and it all depends upon which philosophy the company is using to create code ...
I'm an architect myself, handling some 3-4 different projects, with a total number of 10-15 developers and PMs, Scrum masters, etc - And this principle is one of the core code quality processes I am currently implemented - Combined with what I'm to write up about next of course ;)
Sep 03, 2020 · Thomas Hansen
Most of these things would be simple, and probably easily implemented using ReSharper, or something similar, making it impossible to apply semantic changes for its runtime behaviour. Renaming variables from e.g. "clienIdt" to "clientId", etc - Cannot not even in theory apply runtime changes, if it's a variable inside a method, etc ...
Jul 13, 2020 · Thomas Hansen
Go for it :)
May 09, 2020 · Thomas Hansen
Adding NuGet package "magic.http" should resolve both of these. If not, add Newtonsoft.JSON too :)
"magic.http" is created by me, and technically not licensed as MIT, but I'll probably end up doing it at some point, as I have the time - Feel free to use it under the terms of the MIT license until I do :)
Feb 21, 2020 · Blake Ethridge
@Charles - The article was intended to be easily digestible, with easily remembered punchlines. But I like your suggestions too. Feel free to write your own article, maybe link to this one ...?
@Bas - My "favourite" is "we are too busy". There's a popular meme with some stone age men dragging a cart with square wheels, while saying "we don't have time to change to round wheel, we're too busy". This one perfectly describes the problem it I think :)
Feb 21, 2020 · Thomas Hansen
Feb 21, 2020 · Thomas Hansen
@Keith - Interesting what you say. However, when you say "getting the parameters right" - I have to admit I'm getting Elliptic Curve flashbacks here. Who's "selling" this thing ...?
Feb 12, 2020 · Blake Ethridge
@Tugce - Not sure about the others, but I've got 37 years of experience creating software. In between us, I'm pretty sure we're not too far away from 100 years of combined experience - So I'd say confidently that these are things you can be pretty sure about works yes ... ;)
Feb 12, 2020 · Thomas Hansen
Feb 12, 2020 · Thomas Hansen
@M K
The underlying principle of the article is to teach developers about the importance of hashing passwords, the importance of using individual salts, some of the reasons for doing it (Rainbow Dictionary Attacks), and provide the user with an easy to use library to apply these principles into their own code.
Which "fishing" algorithm to use in such a regard, becomes less interesting, and the header of the article hence an exaggeration, not to be taken literally - However, thank you for providing the reader with alternatives, some would imply are better.
Feb 11, 2020 · Blake Ethridge
May 15, 2019 · Thomas Hansen
For those interested, there's a slightly improved version of this class over here, since the class was improved upon after the article was published.
github.com/polterguy/magic/blob/master/modules/magic.http/magic.http.services/HttpClient.cs
If you'd like, you can simply remove the interface implementation, change the class' namespace, and make all public methods static/non-virtual, since there's no "state" in the class, beyond the static state that HttpClient from .Net keeps around ...
May 30, 2018 · DZone_karap
What did you use to create those diagrams ...?
May 05, 2018 · Thomas Hansen
Thx, God bless you too :)
Psst, you can easily develop on Windows, and deply to Linux, on a completely Open Stack on the server side ...
In fact, I use a Mac myself as my development machine, but I test the source download on windows machines before each releae, and I deply the release (binary build) on a Linux server before I publish them ...
May 05, 2018 · Thomas Hansen
It runs on Mono/Linux/MySQL/Apache
Mono == MIT licensed for the most parts
Linux == GPL (2 I think?)
MySQL == GPL (3 I think, but is also binary compatible with MariaDB if you don't like Oracle)
There's as far as I know not a single closed source of line that is necessary to execute to run Phosphorus Five ...
Open Source "enough" ...? :)
PS!
I run it myself on an old discarded laptop, which I have converted into a "guerilia Linux server", running Ubuntu Server. There's a script ("install.sh") in the download/releases section which automatically configures everything on a Linux Ubuntu server 100% automatically for you ...
This even installs an SSL certificate (for free), sets up Apache, MySQL, etc, etc, etc ...
In fact, a funny fact is that for the most parts, that ".Net Framework" now arguably runs better on Linux than it does on Windows. Although sadly this is a little known fact. Thx to the Mono project of course ...
Thx for the feedback, and for keeping me on my toes, if I should ever stray away from the Open Sauce path ... ;)
Jan 07, 2018 · Jordan Baker
Nice writeup, but I think you might benefit from "outsourcing" the viewing of the code, to make the article more easily read. Which you could easily accomplish, byt having a web based IDE, where you allow "guest" accounts access to read the code. Check out an example of how to do that here.
Jan 07, 2018 · Thomas Hansen
For those interested, you can check out a tutorial where I make an AngularJS app, with a MySQL backend here - https://gaiasoul.com/2018/01/07/creating-your-first-angularjs-and-mysql-app-video-tutorial/
You can browse the code online here - https://home.gaiasoul.com/hyper-ide?path=/modules/todo/index.html
And test the app here - https://home.gaiasoul.com/modules/todo/index.html
Jul 22, 2017 · Grzegorz Ziemoński
Thank you, exactly my point, slightly exaggerated possibly. OOP has enjoyed a God like status for almost 50 years. It's not the only paradigmout there. I guess we largely agree ...
Jul 21, 2017 · Grzegorz Ziemoński
Facts are, we should put posters warning kids about OOP along the highways. They could say stuff like "This is your brain, this is your brain on OOP" ...
Jul 21, 2017 · Grzegorz Ziemoński
I seriously doubt you have more experience in regards to OOP than me. Claiming that I prematurely "jump to conclusions" (your quote) is assumptious at best, ignorant at worst. To believe I am proposing FP too, is also assumptious. OOP has enjoyed a status similar to the Catholic Pope, ever since its mainstream adoption about 10 yearsafter Simula was invented. It has never deserved that position.
I wrote this article, which indirectly sums up my conclusions about OOP - https://msdn.microsoft.com/en-us/magazine/mt795187
My next article was amongst the all time most 5 read articles at MSDN Magazine, so clearly I touched people with it. If you wonder about my "OOP credentials", realize I did more than 10 years ago - http://smartwin.cvs.sourceforge.net/viewvc/smartwin/SmartWin/include/smartwin/widgets/WidgetButton.h?revision=1.29&view=markup
So clearly I "know what I am talking about" when it comes to OOP (the last link demonstrates diamond inheritance, privrat inheritence, and multiple inheritence from template classes)
I also have experience with literally dozens of other OOP languages, such as C#, Java, JavaScript (prototype inheritence), etc - Co clearly I am not "prematurely jumpting to conclusions".
OOP sucks, it's a fact, and I spent 10 years learning OOP, and further 8 more years realising I wasted my years ...
OOP is a problem, this is a solution - https://gaiasoul.com/2017/07/21/hyperlambda-lambda-contracts/
Here's another thing you could only dream of accomplishing in a traditional OOP language - https://gaiasoul.com/2017/07/21/two-really-cool-active-events/
Jul 21, 2017 · Grzegorz Ziemoński
Does this imply me too? See my comment above for clarification ...
Jul 21, 2017 · Grzegorz Ziemoński
OOP sucks, truly! Big time! Its creation emphasized all problems it was intended to solve, by orders of magnitudes. It's a dead end, with no future, forcing us to classify things into absolutes, which does not in any ways mimick the way things are in real life!
Jun 28, 2017 · Grzegorz Ziemoński
Nice one, I did that once too. Memory based, super fast, based upon "lambda expressions", which to some extent resembles XPath :)
Jun 28, 2017 · Thomas Hansen
Thx guys :)