Are you over 18 and want to see adult content?
More Annotations
A complete backup of https://advantagecarrentals.com
Are you over 18 and want to see adult content?
A complete backup of https://tlccarehomes.co.uk
Are you over 18 and want to see adult content?
A complete backup of https://techsupportdubai.com
Are you over 18 and want to see adult content?
A complete backup of https://lipseys.com
Are you over 18 and want to see adult content?
A complete backup of https://allbet24hr.com
Are you over 18 and want to see adult content?
A complete backup of https://langitdominoqq.org
Are you over 18 and want to see adult content?
A complete backup of https://edition-naam.com
Are you over 18 and want to see adult content?
A complete backup of https://outerbanksblue.com
Are you over 18 and want to see adult content?
A complete backup of https://jet-kids.com
Are you over 18 and want to see adult content?
A complete backup of https://therestaurantatmeadowood.com
Are you over 18 and want to see adult content?
A complete backup of https://consciouscompanymedia.com
Are you over 18 and want to see adult content?
A complete backup of https://svobodanews.ru
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of haematologica.org
Are you over 18 and want to see adult content?
A complete backup of wwwcanadagoose-jacketsuk.com.co
Are you over 18 and want to see adult content?
A complete backup of colorsnapper.com
Are you over 18 and want to see adult content?
A complete backup of lingenfelter.com
Are you over 18 and want to see adult content?
A complete backup of ciaoflorentina.com
Are you over 18 and want to see adult content?
A complete backup of jualsofabandung.com
Are you over 18 and want to see adult content?
Text
IOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
PURELY FUNCTIONAL RETROGAMES, PART 4 Purely Functional Retrogames, Part 4 (Read Part 1 if you missed it.). By the definition of functional programming, functions can't access any data that isn't passed in. That means you need to think about what data is needed for a particular function, and "thread" that data through your program so HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes. PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior DADGUM GAMESPROGRAMMING IN THE 21ST CENTURYHALCYON DAYSDAISYPOP FORIOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
PURELY FUNCTIONAL RETROGAMES, PART 4 Purely Functional Retrogames, Part 4 (Read Part 1 if you missed it.). By the definition of functional programming, functions can't access any data that isn't passed in. That means you need to think about what data is needed for a particular function, and "thread" that data through your program so HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes. PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behaviorDADGUM GAMES
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea. THE GIANT LIST OF CLASSIC GAME PROGRAMMERS This is a Who's Who of classic game designers and programmers, where classic refers to pre-NES 8-bit systems: home computers (like the Atari 800 and Apple II), consoles (like the Atari 2600 and Intellivision), and arcade coin-ops. Games for later platforms are included to show the history of designers that started with 8-bitsystems.
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by PURELY FUNCTIONAL RETROGAMES, PART 1 Purely Functional Retrogames, Part 1. When I started looking into functional languages in 1998, I had just come off a series of projects writing video games for underpowered hardware: Super Nintendo, SEGA Saturn, early PowerPC-based Macintoshes without any graphicsacceleration.
FUNCTIONAL PROGRAMMING ARCHAEOLOGY Functional Programming Archaeology. John Backus's Turing Award Lecture from 1977, Can Programming be Liberated from the Von Neumann Style? (warning: large PDF) was a key event in the history of functional programming. All of the ideas in the paper by no means originated with Backus, and Dijkstra publicly criticized it for being poorly thought through, but it did spur interest in functional FIVE MEMORABLE BOOKS ABOUT PROGRAMMING Five Memorable Books About Programming. I've read the classics--Structure and Interpretation of Computer Programs, Paradigms of Artificial Intelligence Programming--but I'd like to highlight some of the more esoteric books which affected my thinking.Zen of Assembly Language Michael Abrash, 1990. I spent much of the 1980s writing 8-bit computer games (which you can read about if you like). PURELY FUNCTIONAL RETROGAMES, PART 2 Purely Functional Retrogames, Part 2. (Read Part 1 if you missed it.) The difficult, or at least different, part of writing a game in a purely functional style is living without global, destructive updates. But before getting into how to deal with that, anything that can be done to reduce the need for destructive updates is going to makethings
OOP ISN'T A FUNDAMENTAL PARTICLE OF COMPUTING OOP Isn't a Fundamental Particle of Computing. The biggest change in programming over the last twenty-five years is that today you manipulate a set of useful, flexible data types, and twenty-five years ago you spent a disproportionately high amount of time building those data types yourself. A PERSONAL HISTORY OF COMPILATION SPEED, PART 2 A Personal History of Compilation Speed, Part 2. (Read Part 1 if you missed it.) My experience with IBM Pascal, on an original model dual-floppy IBM PC, went like this: I wrote a small "Hello World!" type of program, saved it, and fired up the compiler. It churned away for a bit, writing out some intermediate files, then paused and askedfor
WE WHO VALUE SIMPLICITY HAVE BUILT INCOMPREHENSIBLE MACHINES We Who Value Simplicity Have Built Incomprehensible Machines. The 8086 "AAA" instruction seemed like a good idea at the time. In the 1970s there was still a case to be made for operating on binary-coded decimal values, with two digits per byte. DADGUM GAMESPROGRAMMING IN THE 21ST CENTURYHALCYON DAYSDAISYPOP FORIOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
PURELY FUNCTIONAL RETROGAMES, PART 4 Purely Functional Retrogames, Part 4 (Read Part 1 if you missed it.). By the definition of functional programming, functions can't access any data that isn't passed in. That means you need to think about what data is needed for a particular function, and "thread" that data through your program so HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes. PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior DADGUM GAMESPROGRAMMING IN THE 21ST CENTURYHALCYON DAYSDAISYPOP FORIOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
PURELY FUNCTIONAL RETROGAMES, PART 4 Purely Functional Retrogames, Part 4 (Read Part 1 if you missed it.). By the definition of functional programming, functions can't access any data that isn't passed in. That means you need to think about what data is needed for a particular function, and "thread" that data through your program so HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes. PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behaviorDADGUM GAMES
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea. THE GIANT LIST OF CLASSIC GAME PROGRAMMERS This is a Who's Who of classic game designers and programmers, where classic refers to pre-NES 8-bit systems: home computers (like the Atari 800 and Apple II), consoles (like the Atari 2600 and Intellivision), and arcade coin-ops. Games for later platforms are included to show the history of designers that started with 8-bitsystems.
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by PURELY FUNCTIONAL RETROGAMES, PART 1 Purely Functional Retrogames, Part 1. When I started looking into functional languages in 1998, I had just come off a series of projects writing video games for underpowered hardware: Super Nintendo, SEGA Saturn, early PowerPC-based Macintoshes without any graphicsacceleration.
FUNCTIONAL PROGRAMMING ARCHAEOLOGY Functional Programming Archaeology. John Backus's Turing Award Lecture from 1977, Can Programming be Liberated from the Von Neumann Style? (warning: large PDF) was a key event in the history of functional programming. All of the ideas in the paper by no means originated with Backus, and Dijkstra publicly criticized it for being poorly thought through, but it did spur interest in functional FIVE MEMORABLE BOOKS ABOUT PROGRAMMING Five Memorable Books About Programming. I've read the classics--Structure and Interpretation of Computer Programs, Paradigms of Artificial Intelligence Programming--but I'd like to highlight some of the more esoteric books which affected my thinking.Zen of Assembly Language Michael Abrash, 1990. I spent much of the 1980s writing 8-bit computer games (which you can read about if you like). PURELY FUNCTIONAL RETROGAMES, PART 2 Purely Functional Retrogames, Part 2. (Read Part 1 if you missed it.) The difficult, or at least different, part of writing a game in a purely functional style is living without global, destructive updates. But before getting into how to deal with that, anything that can be done to reduce the need for destructive updates is going to makethings
OOP ISN'T A FUNDAMENTAL PARTICLE OF COMPUTING OOP Isn't a Fundamental Particle of Computing. The biggest change in programming over the last twenty-five years is that today you manipulate a set of useful, flexible data types, and twenty-five years ago you spent a disproportionately high amount of time building those data types yourself. A PERSONAL HISTORY OF COMPILATION SPEED, PART 2 A Personal History of Compilation Speed, Part 2. (Read Part 1 if you missed it.) My experience with IBM Pascal, on an original model dual-floppy IBM PC, went like this: I wrote a small "Hello World!" type of program, saved it, and fired up the compiler. It churned away for a bit, writing out some intermediate files, then paused and askedfor
WE WHO VALUE SIMPLICITY HAVE BUILT INCOMPREHENSIBLE MACHINES We Who Value Simplicity Have Built Incomprehensible Machines. The 8086 "AAA" instruction seemed like a good idea at the time. In the 1970s there was still a case to be made for operating on binary-coded decimal values, with two digits per byte. DADGUM GAMESPROGRAMMING IN THE 21ST CENTURYHALCYON DAYSDAISYPOP FORIOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written LET'S TAKE A TRIVIAL PROBLEM AND MAKE IT HARD Let's Take a Trivial Problem and Make it Hard. Here's a simple problem: Given a block of binary data, count the frequency of thebytes within it.
UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
FOLLOW-UP TO "ADMITTING THAT FUNCTIONAL PROGRAMMING CAN BE Follow-up to "Admitting that Functional Programming Can Be Awkward" Admitting that functional programming can be awkward drew a much bigger audience than I expected, so here's some insight into why I wrote it, plus some responses to specific comments.. I started learning some functional programming languages in 1999, because I was looking for a more pleasant way to deal with complex PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes. DADGUM GAMESPROGRAMMING IN THE 21ST CENTURYHALCYON DAYSDAISYPOP FORIOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written LET'S TAKE A TRIVIAL PROBLEM AND MAKE IT HARD Let's Take a Trivial Problem and Make it Hard. Here's a simple problem: Given a block of binary data, count the frequency of thebytes within it.
UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
FOLLOW-UP TO "ADMITTING THAT FUNCTIONAL PROGRAMMING CAN BE Follow-up to "Admitting that Functional Programming Can Be Awkward" Admitting that functional programming can be awkward drew a much bigger audience than I expected, so here's some insight into why I wrote it, plus some responses to specific comments.. I started learning some functional programming languages in 1999, because I was looking for a more pleasant way to deal with complex PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes.DADGUM GAMES
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea. FUNCTIONAL PROGRAMMING ARCHAEOLOGY Functional Programming Archaeology. John Backus's Turing Award Lecture from 1977, Can Programming be Liberated from the Von Neumann Style? (warning: large PDF) was a key event in the history of functional programming. All of the ideas in the paper by no means originated with Backus, and Dijkstra publicly criticized it for being poorly thought through, but it did spur interest in functional PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior RETHINKING PROGRAMMING LANGUAGE TUTORIALS That's an easily understandable Lua function: function intensity (r, g, b) return r*0.3 + g*0.6 + b*0.1 end. If each color value ranges from 0 to 255, then a full white pixel should return the maximum intensity: intensity (255, 255, 255) and it does: 255. This tiny program opens the door for showing how the R, G, and B values can begrouped
FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. FIVE MEMORABLE BOOKS ABOUT PROGRAMMING Five Memorable Books About Programming. I've read the classics--Structure and Interpretation of Computer Programs, Paradigms of Artificial Intelligence Programming--but I'd like to highlight some of the more esoteric books which affected my thinking.Zen of Assembly Language Michael Abrash, 1990. I spent much of the 1980s writing 8-bit computer games (which you can read about if you like). A PERSONAL HISTORY OF COMPILATION SPEED, PART 2 A Personal History of Compilation Speed, Part 2. (Read Part 1 if you missed it.) My experience with IBM Pascal, on an original model dual-floppy IBM PC, went like this: I wrote a small "Hello World!" type of program, saved it, and fired up the compiler. It churned away for a bit, writing out some intermediate files, then paused and askedfor
OOP ISN'T A FUNDAMENTAL PARTICLE OF COMPUTING OOP Isn't a Fundamental Particle of Computing. The biggest change in programming over the last twenty-five years is that today you manipulate a set of useful, flexible data types, and twenty-five years ago you spent a disproportionately high amount of time building those data types yourself. PROGRAMMING MODERN SYSTEMS LIKE IT WAS 1984 Programming Modern Systems Like It Was 1984. Imagine you were a professional programmer in 1984, then you went to sleep and woke up 30years later.
ON BEING SUFFICIENTLY SMART On Being Sufficiently Smart. I'm proud to have created the wiki page for the phrase sufficiently smart compiler back in 2003 or 2004. Not because it's a particularly good page, mind you; it has been endlessly rewritten in standard wiki fashion. DADGUM GAMESPROGRAMMING IN THE 21ST CENTURYHALCYON DAYSDAISYPOP FORIOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written LET'S TAKE A TRIVIAL PROBLEM AND MAKE IT HARD Let's Take a Trivial Problem and Make it Hard. Here's a simple problem: Given a block of binary data, count the frequency of thebytes within it.
UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
FOLLOW-UP TO "ADMITTING THAT FUNCTIONAL PROGRAMMING CAN BE Follow-up to "Admitting that Functional Programming Can Be Awkward" Admitting that functional programming can be awkward drew a much bigger audience than I expected, so here's some insight into why I wrote it, plus some responses to specific comments.. I started learning some functional programming languages in 1999, because I was looking for a more pleasant way to deal with complex PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes. DADGUM GAMESPROGRAMMING IN THE 21ST CENTURYHALCYON DAYSDAISYPOP FORIOS
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea.ED ROTBERG - DADGUM
Ed Rotberg was a key member of Atari's coin-op division, back when the staples of action gaming were introduced with each new Atari arcade game: "Missile Command," "Asteroids," "Centipede," "Tempest"; the list goes on. During his first stint at Atari in the late 1970s and early 1980s, Ed was the primary force behind the 3-D tank game,"Battlezone."
PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
APX: THE ATARI PROGRAM EXCHANGE APX: The Atari Program Exchange The Atari Program Exchange (APX) was an interesting experiment in the early 1980s. Everyone who purchased an Atari 400 or 800 computer received a subscription to the APX catalog of "user-written" software, programs written by FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written LET'S TAKE A TRIVIAL PROBLEM AND MAKE IT HARD Let's Take a Trivial Problem and Make it Hard. Here's a simple problem: Given a block of binary data, count the frequency of thebytes within it.
UNDERSTANDING WHAT IT'S LIKE TO PROGRAM IN FORTH Understanding What It's Like to Program in Forth. I write Forth code every day. It is a joy to write a few simple words and solve a problem. As brain exercise it far surpasses cards, crosswords or Sudoku. — Chuck Moore, creator of Forth. I've used and enjoyed Forth quite a bit over the years, though I rarely find myself programming init
FOLLOW-UP TO "ADMITTING THAT FUNCTIONAL PROGRAMMING CAN BE Follow-up to "Admitting that Functional Programming Can Be Awkward" Admitting that functional programming can be awkward drew a much bigger audience than I expected, so here's some insight into why I wrote it, plus some responses to specific comments.. I started learning some functional programming languages in 1999, because I was looking for a more pleasant way to deal with complex PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes.DADGUM GAMES
iOS, Mac, writing, and retrogaming projects since 1996. Well, iOS didn't exist in 1996, but you get the idea. FUNCTIONAL PROGRAMMING ARCHAEOLOGY Functional Programming Archaeology. John Backus's Turing Award Lecture from 1977, Can Programming be Liberated from the Von Neumann Style? (warning: large PDF) was a key event in the history of functional programming. All of the ideas in the paper by no means originated with Backus, and Dijkstra publicly criticized it for being poorly thought through, but it did spur interest in functional PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior RETHINKING PROGRAMMING LANGUAGE TUTORIALS That's an easily understandable Lua function: function intensity (r, g, b) return r*0.3 + g*0.6 + b*0.1 end. If each color value ranges from 0 to 255, then a full white pixel should return the maximum intensity: intensity (255, 255, 255) and it does: 255. This tiny program opens the door for showing how the R, G, and B values can begrouped
FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. FIVE MEMORABLE BOOKS ABOUT PROGRAMMING Five Memorable Books About Programming. I've read the classics--Structure and Interpretation of Computer Programs, Paradigms of Artificial Intelligence Programming--but I'd like to highlight some of the more esoteric books which affected my thinking.Zen of Assembly Language Michael Abrash, 1990. I spent much of the 1980s writing 8-bit computer games (which you can read about if you like). A PERSONAL HISTORY OF COMPILATION SPEED, PART 2 A Personal History of Compilation Speed, Part 2. (Read Part 1 if you missed it.) My experience with IBM Pascal, on an original model dual-floppy IBM PC, went like this: I wrote a small "Hello World!" type of program, saved it, and fired up the compiler. It churned away for a bit, writing out some intermediate files, then paused and askedfor
OOP ISN'T A FUNDAMENTAL PARTICLE OF COMPUTING OOP Isn't a Fundamental Particle of Computing. The biggest change in programming over the last twenty-five years is that today you manipulate a set of useful, flexible data types, and twenty-five years ago you spent a disproportionately high amount of time building those data types yourself. PROGRAMMING MODERN SYSTEMS LIKE IT WAS 1984 Programming Modern Systems Like It Was 1984. Imagine you were a professional programmer in 1984, then you went to sleep and woke up 30years later.
ON BEING SUFFICIENTLY SMART On Being Sufficiently Smart. I'm proud to have created the wiki page for the phrase sufficiently smart compiler back in 2003 or 2004. Not because it's a particularly good page, mind you; it has been endlessly rewritten in standard wiki fashion.SCOTT LUDWIG
Scott Ludwig is one of the latter. He wrote two fun and original games for the Atari Program Exchange in 1983: "Quarxon," a two-player game in which each player tried to shoot through the opponent's blockade to destroy eight "droids"; and "Caterpiggle," a maze chase pitting the player against a segmented snake. PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written PURELY FUNCTIONAL RETROGAMES, PART 1 Purely Functional Retrogames, Part 1. When I started looking into functional languages in 1998, I had just come off a series of projects writing video games for underpowered hardware: Super Nintendo, SEGA Saturn, early PowerPC-based Macintoshes without any graphicsacceleration.
PICTURING WEBSOCKET PROTOCOL PACKETS F = 1 means this is a complete, self-contained packet. Assume it's always 1 for now. The main use of the opcode (Op) is to specify if the data is UTF-8 text or binary. M = 1 signals the data needs to be exclusive or-ed with a 32-bit mask. The length (Len) has three different encodings depending on FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior FOLLOW-UP TO "ADMITTING THAT FUNCTIONAL PROGRAMMING CAN BE Follow-up to "Admitting that Functional Programming Can Be Awkward" Admitting that functional programming can be awkward drew a much bigger audience than I expected, so here's some insight into why I wrote it, plus some responses to specific comments.. I started learning some functional programming languages in 1999, because I was looking for a more pleasant way to deal with complex LET'S TAKE A TRIVIAL PROBLEM AND MAKE IT HARD Let's Take a Trivial Problem and Make it Hard. Here's a simple problem: Given a block of binary data, count the frequency of thebytes within it.
HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes.SCOTT LUDWIG
Scott Ludwig is one of the latter. He wrote two fun and original games for the Atari Program Exchange in 1983: "Quarxon," a two-player game in which each player tried to shoot through the opponent's blockade to destroy eight "droids"; and "Caterpiggle," a maze chase pitting the player against a segmented snake. PROGRAMMING IN THE 21ST CENTURY I always intended "Programming in the 21st Century" to have a limited run. I knew since the Recovering Programmer entry from January 1, 2010, that I needed to end it. It just took a while. And now, an explanation. I started this blog to talk about issues tangentially related to programming, about soft topics like creativity andinspiration and
FUNCTIONAL PROGRAMMING DOESN'T WORK (AND WHAT TO DO ABOUT IT) At this point I should make it clear: functional programming is useful and important. Remember, it was developed as a way to make code easier to reason about and to avoid "spaghetti memory updates." The line between "imperative" and "functional" is blurry. If a Haskell program contains a BASIC-like domain specific language which is also written PURELY FUNCTIONAL RETROGAMES, PART 1 Purely Functional Retrogames, Part 1. When I started looking into functional languages in 1998, I had just come off a series of projects writing video games for underpowered hardware: Super Nintendo, SEGA Saturn, early PowerPC-based Macintoshes without any graphicsacceleration.
PICTURING WEBSOCKET PROTOCOL PACKETS F = 1 means this is a complete, self-contained packet. Assume it's always 1 for now. The main use of the opcode (Op) is to specify if the data is UTF-8 text or binary. M = 1 signals the data needs to be exclusive or-ed with a 32-bit mask. The length (Len) has three different encodings depending on FREE YOUR TECHNICAL AESTHETIC FROM THE 1970S Free Your Technical Aesthetic from the 1970s. In the early 1990s, I used Unix professionally for a few years. It wasn't the official Unix, nor was it Linux, but Sun's variant called SunOS. By "used" I mean I wrote commercial, embedded software entirely in a Unix environment. I edited 10,000+ line files in vi. PURELY FUNCTIONAL RETROGAMES, PART 3 Purely Functional Retrogames, Part 3. (Read Part 1 if you missed it.) Every entity in a game needs some data to define where it is and what it's doing. At first thought, a ghost in Pac-Man might be defined by: {X, Y, Color} which looks easy enough, but it's naive. There needs to be a lot more data than that: direction of movement, behavior FOLLOW-UP TO "ADMITTING THAT FUNCTIONAL PROGRAMMING CAN BE Follow-up to "Admitting that Functional Programming Can Be Awkward" Admitting that functional programming can be awkward drew a much bigger audience than I expected, so here's some insight into why I wrote it, plus some responses to specific comments.. I started learning some functional programming languages in 1999, because I was looking for a more pleasant way to deal with complex LET'S TAKE A TRIVIAL PROBLEM AND MAKE IT HARD Let's Take a Trivial Problem and Make it Hard. Here's a simple problem: Given a block of binary data, count the frequency of thebytes within it.
HOW MUCH MEMORY DOES MALLOC(0) ALLOCATE? In dlmalloc, the smallest allowed allocation is 32 bytes on a 64-bit system. Going back to the malloc (1) question, 8 bytes of overhead are added to our need for a single byte, and the total is smaller than the minimum of 32, so that's our answer: malloc (1) allocates 32 bytes. Now we can approach the case of allocating zero bytes. PURELY FUNCTIONAL RETROGAMES, PART 1 Purely Functional Retrogames, Part 1. When I started looking into functional languages in 1998, I had just come off a series of projects writing video games for underpowered hardware: Super Nintendo, SEGA Saturn, early PowerPC-based Macintoshes without any graphicsacceleration.
LET'S TAKE A TRIVIAL PROBLEM AND MAKE IT HARD Let's Take a Trivial Problem and Make it Hard. Here's a simple problem: Given a block of binary data, count the frequency of thebytes within it.
THE PURE TECH SIDE IS THE DARK SIDE The Pure Tech Side is the Dark Side. When I was writing 8-bit games, I was thrilled to receive each issue of the home computer magazines I subscribed to (especially this one).I spent my time designing games in my head and learning how to make the hardware turn them into reality. FUNCTIONAL PROGRAMMING ARCHAEOLOGY Functional Programming Archaeology. John Backus's Turing Award Lecture from 1977, Can Programming be Liberated from the Von Neumann Style? (warning: large PDF) was a key event in the history of functional programming. All of the ideas in the paper by no means originated with Backus, and Dijkstra publicly criticized it for being poorly thought through, but it did spur interest in functional PURELY FUNCTIONAL RETROGAMES, PART 2 Purely Functional Retrogames, Part 2. (Read Part 1 if you missed it.) The difficult, or at least different, part of writing a game in a purely functional style is living without global, destructive updates. But before getting into how to deal with that, anything that can be done to reduce the need for destructive updates is going to makethings
OOP ISN'T A FUNDAMENTAL PARTICLE OF COMPUTING OOP Isn't a Fundamental Particle of Computing. The biggest change in programming over the last twenty-five years is that today you manipulate a set of useful, flexible data types, and twenty-five years ago you spent a disproportionately high amount of time building those data types yourself. HOPEFULLY MORE CONTROVERSIAL PROGRAMMING OPINIONS Hopefully More Controversial Programming Opinions. I read 20 Controversial Programming Opinions, and I found myself nodding "yes, yes get to the good stuff."And then, after "less code is better than more," it was over. It was like reading a list of controversial healthtips
FOLLOW-UP TO "ADMITTING THAT FUNCTIONAL PROGRAMMING CAN BE Follow-up to "Admitting that Functional Programming Can Be Awkward" Admitting that functional programming can be awkward drew a much bigger audience than I expected, so here's some insight into why I wrote it, plus some responses to specific comments.. I started learning some functional programming languages in 1999, because I was looking for a more pleasant way to deal with complex PROGRAMMING WITHOUT BEING OBSESSED WITH PROGRAMMING Programming Without Being Obsessed With Programming. I don't get asked this very often, and that's surprising. I ask myself it all the time: If you're really this recovering programmer and all, then why do you frequently write about super technical topics like functional programming?. Sometimes it's just for fun. DO YOU REALLY WANT TO BE DOING THIS WHEN YOU'RE 50? Do You Really Want to be Doing This When You're 50? When I was still a professional programmer, my office-mate once asked out of the blue, "Do you really want toD
A
D
G
U
M
.com
DaisyPop for iOS Programming in the 21st Century (2007-2017) Halcyon Days Interviews with Classic Computer and Video Game Programmers The Giant List of Classic Game ProgrammersSay Hello!
Details
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0