Topic: Computing/Software (Page 12)

You are looking at all articles with the topic "Computing/Software". We found 154 matches.

Hint: To view all topics, click here. Too see the most popular topics, click here instead.

🔗 History of software engineering

🔗 Computing 🔗 Systems 🔗 Computing/Software 🔗 Systems/Software engineering

From its beginnings in the 1960s, writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to its stability, speed, usability, testability, readability, size, cost, security, and number of flaws or "bugs", as well as to less measurable qualities like elegance, conciseness, and customer satisfaction, among many other attributes. How best to create high quality software is a separate and controversial problem covering software design principles, so-called "best practices" for writing code, as well as broader management issues such as optimal team size, process, how best to deliver software on time and as quickly as possible, work-place "culture", hiring practices, and so forth. All this falls under the broad rubric of software engineering.

Discussed on

🔗 Compute Express Link

🔗 Computing 🔗 Computing/Computer hardware 🔗 Computing/Software

Compute Express Link (CXL) is an open standard for high-speed central processing unit (CPU)-to-device and CPU-to-memory connections, designed for high performance data center computers. CXL is built on the PCI Express (PCIe) physical and electrical interface and includes PCIe-based block input/output protocol (CXL.io) and new cache-coherent protocols for accessing system memory (CXL.cache) and device memory (CXL.mem).

Discussed on

🔗 2024 CrowdStrike incident: The largest IT outage in history

🔗 Internet 🔗 Computing 🔗 Disaster management 🔗 Computer Security 🔗 Computer Security/Computing 🔗 Computing/Software 🔗 Computing/Computer Security 🔗 Microsoft 🔗 Current events 🔗 Microsoft/Microsoft Windows

On 19 July 2024, a faulty update to security software produced by CrowdStrike, an American cybersecurity company, caused innumerable computers and virtual machines running Microsoft Windows to crash. Businesses and governments around the globe were affected by what one expert called the "largest IT outage in history".

Among the industries that were disrupted were airlines, airports, banks, hotels, hospitals, stock markets, and broadcasting; governmental services such as emergency numbers and websites were also affected. The error was discovered and a fix was made on the same day, but the outage continued to delay airline flights, cause problems in processing electronic payments, and disrupt emergency services.

Discussed on

🔗 The Complexity of Songs

🔗 Computing 🔗 Computing/Software 🔗 Computing/Computer science

"The Complexity of Songs" is a journal article published by computer scientist Donald Knuth in 1977, as an in-joke about computational complexity theory. The article capitalizes on the tendency of popular songs to devolve from long and content-rich ballads to highly repetitive texts with little or no meaningful content. The article notes that a song of length N words may be produced remembering, e.g., only O(log N) words ("space complexity" of the song).

Discussed on

🔗 Whitespace programming language

🔗 Computing 🔗 Computing/Software

Whitespace is an esoteric programming language developed by Edwin Brady and Chris Morris at the University of Durham (also developers of the Kaya and Idris programming languages). It was released on 1 April 2003 (April Fool's Day). Its name is a reference to whitespace characters. Unlike most programming languages, which ignore or assign little meaning to most whitespace characters, the Whitespace interpreter ignores any non-whitespace characters. Only spaces, tabs and linefeeds have meaning. A consequence of this property is that a Whitespace program can easily be contained within the whitespace characters of a program written in another language, except possibly in languages which depend on spaces for syntax validity such as Python, making the text a polyglot.

The language itself is an imperative stack-based language. The virtual machine on which the programs run has a stack and a heap. The programmer is free to push arbitrary-width integers onto the stack (currently there is no implementation of floating point numbers) and can also access the heap as a permanent store for variables and data structures.

Discussed on

🔗 Linux Router Project

🔗 Computing 🔗 Computing/Software 🔗 Computing/Free and open-source software 🔗 Linux

The Linux Router Project (LRP) is a now defunct networking-centric micro Linux distribution. The released versions of LRP were small enough to fit on a single 1.44MB floppy disk, and made building and maintaining routers, access servers, thin servers, thin clients, network appliances, and typically embedded systems next to trivial.

Discussed on

🔗 WinFS

🔗 Computing 🔗 Microsoft Windows 🔗 Microsoft Windows/Computing 🔗 Computing/Software 🔗 Microsoft

WinFS (short for Windows Future Storage) was the code name for a canceled data storage and management system project based on relational databases, developed by Microsoft and first demonstrated in 2003 as an advanced storage subsystem for the Microsoft Windows operating system, designed for persistence and management of structured, semi-structured and unstructured data.

WinFS includes a relational database for storage of information, and allows any type of information to be stored in it, provided there is a well defined schema for the type. Individual data items could then be related together by relationships, which are either inferred by the system based on certain attributes or explicitly stated by the user. As the data has a well defined schema, any application can reuse the data; and using the relationships, related data can be effectively organized as well as retrieved. Because the system knows the structure and intent of the information, it can be used to make complex queries that enable advanced searching through the data and aggregating various data items by exploiting the relationships between them.

While WinFS and its shared type schema make it possible for an application to recognize the different data types, the application still has to be coded to render the different data types. Consequently, it would not allow development of a single application that can view or edit all data types; rather, what WinFS enables applications to do is understand the structure of all data and extract the information that they can use further. When WinFS was introduced at the 2003 Professional Developers Conference, Microsoft also released a video presentation, named IWish, showing mockup interfaces that showed how applications would expose interfaces that take advantage of a unified type system. The concepts shown in the video ranged from applications using the relationships of items to dynamically offer filtering options to applications grouping multiple related data types and rendering them in a unified presentation.

WinFS was billed as one of the pillars of the "Longhorn" wave of technologies, and would ship as part of the next version of Windows. It was subsequently decided that WinFS would ship after the release of Windows Vista, but those plans were shelved in June 2006, with some of its component technologies being integrated into ADO.NET and Microsoft SQL Server.

Discussed on

  • "WinFS" | 2022-02-18 | 23 Upvotes 2 Comments

🔗 VisiCalc

🔗 Computing 🔗 Business 🔗 Computing/Software 🔗 Business/Accounting

VisiCalc (for "visible calculator") was the first spreadsheet computer program for personal computers, originally released for the Apple II by VisiCorp. It is often considered the application that turned the microcomputer from a hobby for computer enthusiasts into a serious business tool, prompting IBM to introduce the IBM PC two years later. VisiCalc is considered the Apple II's killer app. It sold over 700,000 copies in six years, and as many as 1 million copies over its history.

Initially developed for the Apple II using a 6502 assembler running on the Multics time sharing system, VisiCalc was ported to numerous platforms, both 8-bit and some of the early 16-bit systems. In order to do this, the company developed porting platforms that produced bug compatible versions. The company took the same approach when the IBM PC was launched, producing a product that was essentially identical to the original 8-bit Apple II version. Sales were initially brisk, with about 300,000 copies sold.

VisiCalc used the A1 notation in formulas.

When Lotus 1-2-3 was launched in 1983, taking full advantage of the expanded memory and screen of the PC, VisiCalc sales ended almost overnight. Sales declined so rapidly that the company was soon insolvent. Lotus Development purchased the company in 1985, and immediately ended sales of VisiCalc and the company's other products.

Discussed on

🔗 How a Buffer Overflow Works

🔗 Computing 🔗 Computer Security 🔗 Computer Security/Computing 🔗 Computing/Software

In information security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory locations.

Buffers are areas of memory set aside to hold data, often while moving it from one section of a program to another, or between programs. Buffer overflows can often be triggered by malformed inputs; if one assumes all inputs will be smaller than a certain size and the buffer is created to be that size, then an anomalous transaction that produces more data could cause it to write past the end of the buffer. If this overwrites adjacent data or executable code, this may result in erratic program behavior, including memory access errors, incorrect results, and crashes.

Exploiting the behavior of a buffer overflow is a well-known security exploit. On many systems, the memory layout of a program, or the system as a whole, is well defined. By sending in data designed to cause a buffer overflow, it is possible to write into areas known to hold executable code and replace it with malicious code, or to selectively overwrite data pertaining to the program's state, therefore causing behavior that was not intended by the original programmer. Buffers are widespread in operating system (OS) code, so it is possible to make attacks that perform privilege escalation and gain unlimited access to the computer's resources. The famed Morris worm in 1988 used this as one of its attack techniques.

Programming languages commonly associated with buffer overflows include C and C++, which provide no built-in protection against accessing or overwriting data in any part of memory and do not automatically check that data written to an array (the built-in buffer type) is within the boundaries of that array. Bounds checking can prevent buffer overflows, but requires additional code and processing time. Modern operating systems use a variety of techniques to combat malicious buffer overflows, notably by randomizing the layout of memory, or deliberately leaving space between buffers and looking for actions that write into those areas ("canaries").

Discussed on

🔗 You ain't gonna need it

🔗 Computing 🔗 Computing/Software

"You aren't gonna need it" (YAGNI) is a principle of extreme programming (XP) that states a programmer should not add functionality until deemed necessary. XP co-founder Ron Jeffries has written: "Always implement things when you actually need them, never when you just foresee that you need them." Other forms of the phrase include "You aren't going to need it" and "You ain't gonna need it".

Discussed on