Gems: Quick summary of links to the precious Ada Gems
Please note that this is a mere summary of links to
the
Ada Gems
of
AdaCore
without authorization.
quotation:
"expert tips and insights that will help you get the most out of Ada."
newest Gems
from
AdaCore
Gem #1: Limited Types in Ada 2005 Limited Aggregates
Bob Duff 20070514
Gem #2: Limited Types in Ada 2005 <> Notation in Aggregates
Bob Duff 20070521
Gem #3: Limited Types in Ada 2005 Constructor Functions
Bob Duff 20070528
Gem #4: PWM Position Control for Radiocontrol Servos
Michael Gonzalez Harbour 20070604
Gem #5: Key-Based Searching In Set Containers
Matthew Heaney 20070611
Gem #6: The Ada95 Multiple Views Idiom vs. Ada05 Interfaces
Matthew Heaney 20070618
Gem #7: The Beauty of Numeric Literals in Ada
Franco Gasperoni 20070625
Gem #8: Factory Functions
Matthew Heaney 20070910
Gem #9: Classwide Operations, Iterators, and Generic Algorithms
Matthew Heaney 20070917
Gem #10: Limited Types in Ada 2005 Extended Return Statements
Bob Duff 20070924
Gem #11: Limited Types in Ada 2005 Constructor Functions Part 2
Bob Duff 20071001
Gem #12: Limited Types in Ada 2005 <> Notation Part 2
Bob Duff 20071008
Gem #13: Interrupt Handling Idioms (Part 1)
Pat Rogers 20071015
Gem #14: Interrupt Handling Idioms (Part 2)
Pat Rogers 20071022
Gem #15: Timers
Anh Vo 20071029
Gem #16: Pragma No_Return
Bob Duff 20071105
Gem #17: Pragma No_Return, Part 2 (functions)
Bob Duff 20071112
Gem #18: Warnings in GNAT
Bob Duff 20071119
Gem #19: XML streaming of Ada objects
Pascal Obry 20071126
Gem #20: Using pragma Shared_Passive for data persistence
Pascal Obry 20071203 (permanent store)
Gem #21: How to parse an XML text
Emmanuel Briot 20071210
Gem #22: Ada Speaks Many Languages
Robert Dewar, Vasiliy Fofanov, Franco Gasperoni, Yang Zhang 20071217
Gem #23: Null Considered Harmful
Bob Duff 20080114
Gem #24: Null Considered Harmful (Part 2 Efficiency)
Bob Duff 20080128
Gem #25: How to Search Text
Emmanuel Briot 20080211
Gem #26: The Mod Attribute
Bob Duff 20080225
Gem #27: Changing Data Representation (Part 1)
Robert Dewar 20080303
Gem #28: Changing Data Representation (Part 2)
Robert Dewar 20080317
Gem #29: Introduction to the Ada Web Server (AWS)
Pascal Obry 20080331
Gem #30: Safe and Secure Software : Introduction
John Barnes 20080408 booklet begin
Gem #31: preconditions/postconditions
Robert Dewar 20080414
Gem #32: Safe and Secure Software : Chapter 1, Safe Syntax
John Barnes 20080421
Gem #33: Accessibility Checks (Part I: Ada95)
Ramon Fernandez-Marina 20080428
Gem #34: Safe and Secure Software : Chapter 2, Safe Typing
John Barnes 20080505
Gem #35: bounded buffer package in GNAT hierarchy (Part 1)
Pat Rogers 20080512
Gem #36: Safe and Secure Software : Chapter 3, Safe Pointers
John Barnes 20080519
Gem #37: Bounded Buffer package in GNAT Hierarchy (Part 2)
Pat Rogers 20080526
Gem #38: Safe and Secure Software : Chapter 4, Safe Architecture
John Barnes 20080602
Gem #39: Efficient Stream I/O for Array Types
Pat Rogers 20080609
Gem #40: Safe and Secure Software : Chapter 5, Safe Object Oriented Programming
John Barnes 20080616
Gem #41: Accessibility Checks (Part II: Ada2005)
Ramon Fernandez-Marina 20080630
Gem #42: Safe and Secure Software : Chapter 6, Safe Object Construction
John Barnes 20080707
Gem #43: Safe and Secure Software : Chapter 7, Safe Memory Management
John Barnes 20080908
Gem #44: Accessibility Checks (Part III)
Bob Duff 20080915
Gem #45: Safe and Secure Software : Chapter 8, Safe Startup
John Barnes 20080922
Gem #46: Incompatibilities between Ada 83 and Ada 95
Robert Dewar 20080929
Gem #47: Safe and Secure Software : Chapter 9, Safe Communication
John Barnes 20081006
Gem #48: Extending Interfaces in Ada 2005
Quentin Ochem 20081013
Gem #49: Safe and Secure Software: Chapter 10, Safe Concurrency
John Barnes 20081020
Gem #50: Overload Resolution
Bob Duff 20081027
Gem #51: Safe and Secure Software: Chapter 11, Certified Safe with SPARK
John Barnes 20081103
Gem #52: Scripting Capabilities in GNAT (Part 1)
Emmanuel Briot 20081110
Gem #53: Safe and Secure Software: Chapter 12: Conclusion
John Barnes 20081117 booklet end
Gem #54: Scripting Capabilities in GNAT (Part 2)
Emmanuel Briot 20081124
Gem #55: Introduction to Ada / Java Interfacing
Quentin Ochem 20081208
Gem #56: Creating Ada to Java calls using GNAT-AJIS
Quentin Ochem 20090112
Gem #57: Ada / Java cross dispatching
Quentin Ochem 20090126
Gem #58: Ada / Java exception handling
Quentin Ochem 20090209
Gem #59: Generating Ada bindings for C headers
Arnaud Charlet 20090223
Gem #60: Generating Ada bindings for C++ headers
Arnaud Charlet 20090309
Gem #61: Interfacing with C++ constructors
Javier Miranda, Arnaud Charlet 20090323
Gem #62: C++ constructors and Ada 2005
Javier Miranda, Arnaud Charlet 20090406
Gem #63: The Effect of Pragma Suppress
Gary Dismukes 20090421
Gem #64: Handling Multiple-Unit Source Files
Emmanuel Briot 20090504
Gem #65: gprbuild
Emmanuel Briot 20090518
Gem #66: GPSs Key Shortcuts Editor
Emmanuel Briot 20090601
Gem #67: Managing the GPS Workspace
Emmanuel Briot 20090615
Gem #68: Lets SPARK! - Part 1
Yannick Moy 20090629
Gem #69: Lets SPARK! - Part 2
Yannick Moy 20090907
Gem #70: The Scope Locks Idiom
Pat Rogers 20090921
Gem #71: Tokeneer Discovery - Lesson 1
Dean Kuo and Angela Wallenburg 20091005
Gem #72: Tokeneer Discovery - Lesson 2
Dean Kuo and Angela Wallenburg 20091019
Gem #73: Tokeneer Discovery - Lesson 3
Dean Kuo and Angela Wallenburg 20091102
Gem #74: Tokeneer Discovery - Lesson 4
Dean Kuo and Angela Wallenburg 20091116
Gem #75: Tokeneer Discovery - Lesson 5
Dean Kuo and Angela Wallenburg 20091130
Gem #76: Tokeneer Discovery - Lesson 6
Dean Kuo and Angela Wallenburg 20091214
Gem #77: Where did my memory go? (Part 1)
Emmanuel Briot 20100111
Gem #78: Where did my memory go? (Part 2)
Emmanuel Briot 20100125
Gem #79: Where did my memory go? (Part 3)
Emmanuel Briot 20100208
Gem #80: Speedy Shift and Rotate in SPARK
Rod Chapman 20100225
Gem #81: GNAT Semaphores
Pat Rogers 20100308
Gem #82: Type-Based Security 1: Handling Tainted Data
Yannick Moy 20100322
Gem #83: Type-Based Security 2: Validating the Input
Yannick Moy 20100405
Gem #84: The Distributed Systems Annex 1 - Simple client/server
Thomas Quinot 20100419
Gem #85:The Distributed Systems Annex 2 - Distributed Objects
Thomas Quinot 20100503
Gem #86: Ada Quiz 1 - Basic Types
Quentin Ochem 20100517
Gem #87: The Distributed Systems Annex, Part 3 - Mailboxes
Thomas Quinot 20100602
Gem #88: GPS Smart Completion (Part 1 of 2)
Quentin Ochem 20100614
Gem #89: Code Archetypes for Real-Time Programming Part 1
Marco Panunzio 20100622
Gem #90: The Distributed Systems Annex, Part 4 DSA and C
Thomas Quinot 20100914
Gem #91: Smart Completion (Part 2 of 2)
Quentin Ochem 20100927
Gem #92: Code Archetypes for Real-Time Programming Part 2
Marco Panunzio 20101011
Gem #93: High Performance Multi-core Programming - Part 1
Pat Rogers 20101025
Gem #94: Code Archetypes for Real-Time Programming Part 3
Marco Panunzio 20101108
Gem #95: Dynamic Stack Analysis in GNAT
Quentin Ochem 20101122
Gem #96: Code Archetypes for Real-Time Programming Part 4
Marco Panunzio 20101206
Gem #97: Reference Counting in Ada Part 1
Emmanuel Briot 20110117
Gem #98: High Performance Multi-core Programming Part 2
Pat Rogers 20110131
Gem #99: Reference Counting in Ada Part 2: Task Safety
Emmanuel Briot 20110214
Gem #100: Reference Counting in Ada Part 3: Weak References
Emmanuel Briot 20110228
Gem #101: SOAP/WSDL server part
Pascal Obry 20110314
Gem #102: SOAP/WSDL client part
Pascal Obry 20110328
Gem #103: Code Archetypes for Real-Time Programming Part 5
Marco Panunzio 20110411
Gem #104: Gprbuild and Configuration Files Part 1
Johannes Kanig 20110426
Gem #105: Lady Ada Kisses Python Part 1
Emmanuel Briot 20110509
Gem #106: Lady Ada Kisses Python Part 2
Emmanuel Briot 20110523
Gem #107: Preventing Deallocation for Reference-counted Types
Ada Magica (C.K.W. Grein) 20110606
Gem #108: Gprbuild and Configuration Files Part 2
Johannes Kanig 20110617
Gem #109: Ada Plug-ins and Shared Libraries Part 1
Pascal Obry of EDF R&D 20110905
Gem #110: Ada Plug-ins and Shared Libraries Part 2
Pascal Obry of EDF R&D 20110921
Gem #111: The Distributed Systems Annex, Part 5 Embedded Name Server
Thomas Quinot 20111003
Gem #112: Lego Mindstorms Ada Environment Part 1
Pat Rogers 20111017
Gem #113: Visitor Pattern in Ada
Emmanuel Briot 20111107
Gem #114: Logging with GNATCOLL.Traces
Emmanuel Briot 20111122
Gem #115: Lego Mindstorms Ada Environment Part 2
Pat Rogers 20111205
Gem #116: Ada and C++ Exceptions
Quentin Ochem 20120116
Gem #117: Design Pattern: Overridable Class Attributes in Ada 2012
Emmanuel Briot 20120130
Gem #118: File-System Portability Issues and GNATCOLL.VFS
Emmanuel Briot ????????
Gem #119 : GDB Scripting Part 1
Jean-Charles Delay 20120227
Gem #120 : GDB Scripting Part 2
Jean-Charles Delay 20120312
Gem #121 Breakpoint Commands Part 1
Jerome Guitton 20120312
Gem #122: Breakpoint Commands Part 2
Jerome Guitton 20120410
Gem #123: Implicit Dereferencing in Ada 2012
Christoph Grein 20120417
Gem #124 : Scripting GPS for Static Analysis
Yannick Moy, Nicolas Setton 20120430
Gem #125: Detecting infinite recursion with GDBs Python API
Jerome Guitton 20120514
Gem #126 : Aggregate Library Projects
Pascal Obry 20120528
Gem #127: Iterators in Ada 2012 - Part 1
Emmanuel Briot 20120611
Gem #128 : Iterators in Ada 2012 - Part 2
Emmanuel Briot 20120625
Gem #129 : Type-Safe Database API - Part 1
Emmanuel Briot 20120709
Gem #130 : Type-Safe Database API - Part 2
Emmanuel Briot 20120723
Gem #131 : Type-Safe Database API - Part 3
Emmanuel Briot 20120807
Gem #132 : Erroneous Execution - Part 1
Bob Duff 20120912
Gem #133 : Erroneous Execution - Part 2
Bob Duff 20120924
Gem #134 : Erroneous Execution - Part 3
Bob Duff 20121015
Gem #135 : Erroneous Execution - Part 4
Bob Duff 20121029
Gem #136: How tall is a kilogram?
Vincent Pucci 20121112
Gem #137: Ada Quiz 2 - An Heir and a Spare?
Valentine Reboul 20121126
Gem #138 : Master the Command Line - Part 1
Emmanuel Briot 20121210
Gem #139 : Master the Command Line - Part 2
Emmanuel Briot 20130114
Gem #140: Bridging the Endianness Gap
Thomas Quinot 20130128
Gem #141 : Con-figure it out
Emmanuel Briot 20130211
Gem #142 : Exception-ally
Emmanuel Briot 20130225
Gem #143 : Return to the Sources
Emmanuel Briot 20130311
Gem #144: A Bit of Bytes: Characters and Encoding Schemes
Emmanuel Briot 20130325
Gem #145: Ada Quiz 3 - Statements
Valentine Reboul 20130408
Gem #146 : Su(per)btypes in Ada 2012 - Part 1
Yannick Moy 20130422
Gem #147 : Su(per)btypes in Ada 2012 - Part 2
Yannick Moy 20130506
Gem #148 : Su(per)btypes in Ada 2012 - Part 3
Yannick Moy 20130520
Gem #149 : Asserting the truth, but (possibly) not the whole truth
Yannick Moy 20130603
Gem #150: Out and Uninitialized
Emmanuel Briot, Robert Dewar 20130617
Gem #151 : Specifying Mathematical Properties of Programs
Yannick Moy 20130701
Gem #152 : Defining a New Language in a Project File
Vincent Celier 20130923
Gem #153: Multicore Maze Solving, Part 1
Pat Rogers 20131009
(illustrating one of the fundamental differences between traditional multiprocessing and modern multicore programming)
Gem #154: Multicore Maze Solving, Part 2
Pat Rogers 20131028
Gem #155: Enhancing the GPRBuild Database for a New Language
Vincent Celier 20131209
Gem #156: Listing Control in GNAT
Robert Dewar 20140204
Gem #157: Gprbuild and Code Generation
Emmanuel Briot 20140303
Gem #158: GPRinstall - Part 1
Pascal Obry 20140428
Gem #159 : GPRinstall - Part 2
Pascal Obry 20140519
Gem #160 : Developing unit tests with GNATtest
Vasiliy Fofanov 20140623
Gem #161 : So long and thanks for all the memories!
Jamie Ayre (seems to be the last gem) 20140804
Introducing the AdaCore Blog
Jamie Ayre 20150109 (following the precious gems)
https://blog.adacore.com/
The archive of the Adacore Gems is best found in "resources" --> "Ada Gems"
20181019ph
newest Gems
from
AdaCore
latest update 20181025ph
back to
http://www.horstpeterhermann.de/ada_related/resources_on_ada.html