This dissertation introduces and elaborates the Representational State Transfer (REST) architectural style for distributed hypermedia systems, describing the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, while contrasting them to the constraints of other architectural styles.
One of the promising reasons I started learning rust is that it can be used to build modules for web using web-assembly. This blog post will cover how you can build a rust module and use it as…
Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser. So here we're collecting all the shims, fallbacks, and polyfills in order to implant HTML5 functionality in browsers that don't natively support them.
We have been using Vue instead of Angular for nearly a year now. In this article, I will highlight my impressions on Vue and differences compared to Angular.
Once we were over the infamous Haskell learning-curve, we began looking for functional programming, immutability, and types everywhere! Given that one-third of our code runs in the browser (via Angular v1 — for now!), it is only a matter of time before we make the switch to typed-FP for front-end development as well.
We will be building a user authentication in a single page application with Node, React, Redux and Koa combined with Passport. We will implement local authentication, where users can log in using an email and passport, and authentication with Facebook, which can be used with other social networks and OAuth providers.
Riot lets you build user interfaces with custom tags using simple and enjoyable syntax. It uses a virtual DOM similar to React but faster. Riot is very tiny compared to industry standards. We think there is a clear need for another UI library.
Tim Griesser As JavaScript applications increase in complexity, consistent patterns for managing state becomes considerably more important, and difficult to ...
This article comes from Tomislav Capan, technical consultant and Node.js enthusiast. Tomislav originally published this in August 2013 in the Toptal blog — you can find the original post here; the…
Always write code that can be maintained by anyone who may end up working on your software. To that end, here are several programming principles to help you clean up your act.
I'm going to share with you common pitfalls when learning to program (or mastering programming). Many of these affect both beginners and professionals.
Modals, there are a thousand ways of implementing them, but the biggest challenge is to keep them simple and flexible. Let’s do that with React Hooks and Portals!
The modern project of creating human-like artificial intelligence (AI) started after World War II, when it was discovered that electronic computers are not just number-crunching machines, but can also manipulate symbols. It is possible to pursue this goal without assuming that machine intelligence is identical to human intelligence. This is known as weak AI. However, many AI researcher have pursued the aim of developing artificial intelligence that is in principle identical to human intelligence, called strong AI. Weak AI is less ambitious than strong AI, and therefore less controversial. However, there are important controversies related to weak AI as well. This paper focuses on the distinction between artificial general intelligence (AGI) and artificial narrow intelligence (ANI). Although AGI may be classified as weak AI, it is close to strong AI because one chief characteristics of human intelligence is its generality. Although AGI is less ambitious than strong AI, there were critics almost from the very beginning. One of the leading critics was the philosopher Hubert Dreyfus, who argued that computers, who have no body, no childhood and no cultural practice, could not acquire intelligence at all. One of Dreyfus’ main arguments was that human knowledge is partly tacit, and therefore cannot be articulated and incorporated in a computer program. However, today one might argue that new approaches to artificial intelligence research have made his arguments obsolete. Deep learning and Big Data are among the latest approaches, and advocates argue that they will be able to realize AGI. A closer look reveals that although development of artificial intelligence for specific purposes (ANI) has been impressive, we have not come much closer to developing artificial general intelligence (AGI). The article further argues that this is in principle impossible, and it revives Hubert Dreyfus’ argument that computers are not in the world.
For over half a century, worldwide growth in affluence has continuously increased resource use and pollutant emissions far more rapidly than these have been reduced through better technology. The affluent citizens of the world are responsible for most environmental impacts and are central to any future prospect of retreating to safer environmental conditions. We summarise the evidence and present possible solution approaches. Any transition towards sustainability can only be effective if far-reaching lifestyle changes complement technological advancements. However, existing societies, economies and cultures incite consumption expansion and the structural imperative for growth in competitive market economies inhibits necessary societal change. Current environmental impact mitigation neglects over-consumption from affluent citizens as a primary driver. The authors highlight the role of bottom-up movements to overcome structural economic growth imperatives spurring consumption by changing structures and culture towards safe and just systems.
SHA-2 (Secure Hash Algorithm 2), of which SHA-256 is a part, is one of the most popular hashing algorithms out there. In this article, we are going to break down each step of the algorithm as simple as we can and work through a real-life example by hand.
In Practical guide to writing more functional Javascript, we walked through how to reason about our code in functional programming terms. In this guide, we will talk about a few utilities I like to use to reason about these concepts and help us navigate through the imperative constructs JavaScript natively provides.
n this post, I aim to:
— Shed light on some of the presumed benefits of small functions
— Explain why I personally think some of the benefits don’t really pan out as well as advertised
— Explain why small functions can actually prove counterproductive sometimes
— Explain the times when I do think smaller functions truly shine
Since the React hooks API was introduced, a lot of questions have risen about whether or not React hooks will replace Redux. In my view, there is little overlap between hooks and Redux. Hooks didn’t…
Next js is a fast upcoming frameworking being used in some huge companies, but what is it? Let me tell you what Next js is and why you should be using it!
GitHub flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly. This guide explains how and why GitHub flow works.
[I]nstead of focusing on one or two concepts, I'll try to go through as many Rust snippets as I can, and explain what the keywords and symbols they contain mean.
Let me start with this — this is by all means not a comparison of what should be your next choice for Front-End. It’s a small, relatively unsophisticated, comparison of three things: Performance, Size, and Lines of Code of pretty similar application.
Execute one command (or mount one Node.js middleware) and get an instant high-performance GraphQL API for your PostgreSQL database! - graphile/postgraphile
I’ve written this article series, to help you get a good sense of how production Haskell is written at a company like Klarna and what to avoid along the road.
Learn more about how the Rust programming language shares many of the advantages offered by Haskell such as a strong type system, great tooling, polymorphism, immutability, concurrency, and great software testing methodologies. Rust is a good choice when you need to squeeze in extra performance.
This popular pattern used by tons of JavaScript applications may save you from injecting costly dependencies in your project. Easy, clean and very useful.
This website is a single HTML file. It simply uses the #anchor suffix (from 1992) and the :target CSS selector to show and hide pages/content. This setup is databaseless, javascriptless, and buildshit-free, so you can edit your website with a text editor and upload it somewhere like a normal person.
NFT art is bad for the environment, and bad for artists, but critics and supporters of NFT art are both missing a key fact: it's also just bad art. Whether Beeple or Bugmeyer, it's time the stars of the NFT revolution experienced some real art criticism.
APA Style guidelines encourage writers to fully disclose essential information and allow readers to dispense with minor distractions, such as inconsistencies or omissions in punctuation, capitalization, reference citations, and presentation of statistics.
This is a toutorial on how to install BCache on Linux. You should read through the whole thing before beginning. Edit: If you want to work with a caching system that is designed to be applied to a drive that is in use check out EnhanceIO. You can Google for instructions for your distribution. Many…
Feitian ePass FIDO® - NFC is a FIDO alliance certified U2F authentication key. Unlike the traditional second factor authentication devices, FIDO U2F provides a much more convenient solution to replace or be a plus of traditional password.
Did you know that there's a killswitch in your [games | books | music | movies | apps]? It's called DRM, and it can block your access to things you bought. You can still take control by choosing DRM-free sources.
Say it out loud: "I want an attorney." and "I invoke my right to remain silent."These lock screens are based on our stickers! By popular demand, here are three different designs, all using our new logo. Please feel free to right click on the correct size for your device to download and use as...
Composition is a fundamental principle of functional programming, but how is it different from an object-oriented approach, and how do you use it in practice? In this talk for beginners, we'll start by going over the basic concepts of functional programming, and then look at some different ways that composition can be used to build large things from small things.
I am at an advantage over many software engineers working in the industry today. The advantage I have is that I recognize that programming languages are just tools. Tools that sometimes vary widely…
Functional programming is the mustachioed hipster of programming paradigms. Originally relegated to the annals of computer science academia, functional programming has had a recent renaissance that is due largely to its utility in distributed systems (and probably also because “pure” functional languages like Haskell are difficult to grasp, which gives them a certain cache). Stricter functional programming languages are typically used when a system’s performance and integrity are both critical — i.e. your program needs to do exactly what you expect every time and needs to operate in an environment where its tasks can be shared across hundreds or thousands of networked computers.
Ethereum is a decentralized platform for applications that run exactly as programmed without any chance of fraud, censorship or third-party interference.
With a global community of developers, entrepreneurs, corporate executives, government officials, philanthropists, hobbyists, and general enthusiasts contributing to the IOTA project, the IOTA Ecosystem is a platform for this community to meet, collaborate, learn, inspire, develop and build.
Kadena is the leader in distributed digital ledgers, with the first secure, scalable platform and simplified smart contract language designed for business. Kadena helps organizations achieve more with blockchain.
Holo is a bridge to transition from today’s centralized infrastruture to greater decentralization and autonomy with Holochain’s application platform. Not only is Holo a Holochain app, Holo supports and extends other Holochain apps.