SlideShare a Scribd company logo
Hackolade Tutorial
Tutorial – Export/Import with the Excel template
Copyright © 2016-2023 Hackolade 1
Excel template
• Allows to exchange data between Excel and Hackolade Studio data models
• Easy editing of properties in tabular format, and re-import into Hackolade Studio
• Facilitates productive bulk actions for maintenance of properties
• Capabilities:
1. Edit containers, entities, and attributes of existing models, or addition to existing
models;
2. Select properties of an attribute that are exported in the Excel file;
3. Select custom attributes to be added in data types of the plugin.
• Important:
• References to definitions are not resolved
• Version of Excel template must be same as target and plugin version of export
process
Copyright © 2016-2023 Hackolade 2
Object selection
• Tools > Forward-Engineer >
Excel File…
• May reduce list of objects to be
exported
Copyright © 2016-2023 Hackolade 3
Object properties selection
• Properties of each object are
listed in corresponding sections
• May reduce number of columns
to be exported by deselecting
unnecessary properties
Copyright © 2016-2023 Hackolade 4
Maintain export options
• Tools > Options > Forward-Engineering > Excel Export
• This configuration can be
exported to or imported by
other users of Hackolade Studio
Copyright © 2016-2023 Hackolade 5
Reverse-Engineering from Excel template
• Tools > Reverse-Engineer > Excel
Template…
• Assumes that you have first
Forward-Engineered the existing
model
• When creating a new model – first
forward-engineer an empty model
• Beware of the titles / order of the
columns
• Template does not enforce
referential integrity between
worksheets
• If you want to import CSV files into
Hackolade Studio, first import them
into a Hackolade Excel template
Copyright © 2016-2023 Hackolade 6
Expected behavior
• If target/GUID of the model match, updates/inserts to the open
model are processed
• For new model, entire file is inserted
• Based on GUID, import will overwrite existing property values
• If no GUID, object will be created / inserted in proper order
• Complex structures are supported using dot notation
• Multiple data types are supported also
• e.g. {"id":"c973c0a0-7e84-11e9-9a55-eba2b9bb390e" ,"type":"string"
,"enum":["user" ,"owner" ,"tester"]} | {"id":"d7cd4e50-7e84-11e9-9a55-
eba2b9bb390e" ,"type":"null"} | {"id":"cbd7a140-7e84-11e9-9a55-
eba2b9bb390e" ,"type":"numeric" ,"minimum":""
,"exclusiveMinimum":false,"maximum":"",
"exclusiveMaximum":false,"multipleOf":"" ,"unit":""}
Copyright © 2016-2023 Hackolade 7
Reverse Engineering / Import validations
• Import should never corrupt the model
• import is rejected if the target of the Excel file does not
match the target of the model;
• only allow one line (other than the title line) in the
model tab;
• only import if tab names match acceptable values for
the target;
• column name (property) does not have to be marked
for export in the config to be usable in the Excel import,
as long as it is a valid “propertyName”;
• attribute line referencing an entity not present in the
entities tab cannot be imported.
• entity referencing a container not present in the
containers tab cannot be imported.
• container referencing a model not present in the model
tab cannot be imported;
• unknown property value: can only accept valid values
as previously exported and visible in the last tab "Lists"
Copyright © 2016-2023 Hackolade 8
Best practices for a successful integration
• Excel export/import is best suited for bulk editing of existing models where
you can leverage formulas, conditional formatting, vlookups and other
advanced functions to facilitate modifications
• It can also be used to create new models or add entities and attributes
• BUT it is advised, BEFORE embarking on a huge effort, to:
• Realize that Excel is a tool with:
• a tabular design, i.e. not naturally built for nested structures (we use a workaround with dot
notation)
• limitations when it comes to ensuring the integrity of the data model (in other words, an Excel file
obviously does not have all the business logic that is built into Hackolade Studio)
• Start small and validate approach and use cases
• Build an understanding for the behavior and constraints of the interactions between
Excel and Hackolade Studio
• Regularly test import process to detect anomalies in the Excel input
• Progressively try more elaborate scenarios
Copyright © 2016-2023 Hackolade 9
Reading material
• See Hackolade online documentation
• The Hackolade Blog
• This excellent new book:
MongoDB Data Modeling & Schema Design
• Many of the principles in the book are related to query
driven modeling based on access patterns
• Hackolade’s on social media: LinkedIn page, Twitter page
• Download Hackolade Studio for free
Copyright © 2016-2023 Hackolade 10
Questions?
Answers!
Copyright © 2016-2023 Hackolade 11
Ad

Recommended

Hackolade Tutorial - part 9 - Export or forward-engineer.pdf
Hackolade Tutorial - part 9 - Export or forward-engineer.pdf
PascalDesmarets1
 
Tutorial Expert How-To - Compare and Merge
Tutorial Expert How-To - Compare and Merge
PascalDesmarets1
 
Hackolade Tutorial - part 8 - Import or reverse-engineer.pdf
Hackolade Tutorial - part 8 - Import or reverse-engineer.pdf
PascalDesmarets1
 
Tutorial Getting Started part 1 - Overview
Tutorial Getting Started part 1 - Overview
PascalDesmarets1
 
Tutorial Expert How-To - Command Line Interface (CLI)
Tutorial Expert How-To - Command Line Interface (CLI)
PascalDesmarets1
 
Tutorial Expert How-To - Verify Data Model
Tutorial Expert How-To - Verify Data Model
PascalDesmarets1
 
Tutorial Workgroup - Model versioning and collaboration
Tutorial Workgroup - Model versioning and collaboration
PascalDesmarets1
 
Tutorial Expert How-To - Naming Conventions
Tutorial Expert How-To - Naming Conventions
PascalDesmarets1
 
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
PascalDesmarets1
 
Tutorial Getting Started part 3 - Metadata-as-Code
Tutorial Getting Started part 3 - Metadata-as-Code
PascalDesmarets1
 
Tutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom properties
PascalDesmarets1
 
Hackolade Tutorial - part 1 - What is a data model
Hackolade Tutorial - part 1 - What is a data model
PascalDesmarets1
 
Hackolade Tutorial - part 4 - Create your first data model
Hackolade Tutorial - part 4 - Create your first data model
PascalDesmarets1
 
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
PascalDesmarets1
 
Tutorial Getting Started part 2 - Polyglot Data Modeling
Tutorial Getting Started part 2 - Polyglot Data Modeling
PascalDesmarets1
 
Tutorial Expert How-To - Add reusable Definitions
Tutorial Expert How-To - Add reusable Definitions
PascalDesmarets1
 
Tutorial Workgroup - Working with Forks
Tutorial Workgroup - Working with Forks
PascalDesmarets1
 
Tutorial Advanced How-To - Oracle 23c Duality views
Tutorial Advanced How-To - Oracle 23c Duality views
PascalDesmarets1
 
Tutorial Expert How-To - Docker-based automation
Tutorial Expert How-To - Docker-based automation
PascalDesmarets1
 
Tutorial Expert How-To - Create a model for Avro schemas
Tutorial Expert How-To - Create a model for Avro schemas
PascalDesmarets1
 
Hackolade Tutorial - part 12 - Create a REST API model
Hackolade Tutorial - part 12 - Create a REST API model
PascalDesmarets1
 
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
PascalDesmarets1
 
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
PascalDesmarets1
 
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
PascalDesmarets1
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Supporting the NextGen 911 Digital Transformation with FME
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 

More Related Content

Similar to Tutorial Expert How-To - Export-Import with Excel template (8)

Hackolade Tutorial - part 13 - Leverage a Polyglot data model
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
PascalDesmarets1
 
Tutorial Getting Started part 3 - Metadata-as-Code
Tutorial Getting Started part 3 - Metadata-as-Code
PascalDesmarets1
 
Tutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom properties
PascalDesmarets1
 
Hackolade Tutorial - part 1 - What is a data model
Hackolade Tutorial - part 1 - What is a data model
PascalDesmarets1
 
Hackolade Tutorial - part 4 - Create your first data model
Hackolade Tutorial - part 4 - Create your first data model
PascalDesmarets1
 
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
PascalDesmarets1
 
Tutorial Getting Started part 2 - Polyglot Data Modeling
Tutorial Getting Started part 2 - Polyglot Data Modeling
PascalDesmarets1
 
Tutorial Expert How-To - Add reusable Definitions
Tutorial Expert How-To - Add reusable Definitions
PascalDesmarets1
 
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
PascalDesmarets1
 
Tutorial Getting Started part 3 - Metadata-as-Code
Tutorial Getting Started part 3 - Metadata-as-Code
PascalDesmarets1
 
Tutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom properties
PascalDesmarets1
 
Hackolade Tutorial - part 1 - What is a data model
Hackolade Tutorial - part 1 - What is a data model
PascalDesmarets1
 
Hackolade Tutorial - part 4 - Create your first data model
Hackolade Tutorial - part 4 - Create your first data model
PascalDesmarets1
 
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
PascalDesmarets1
 
Tutorial Getting Started part 2 - Polyglot Data Modeling
Tutorial Getting Started part 2 - Polyglot Data Modeling
PascalDesmarets1
 
Tutorial Expert How-To - Add reusable Definitions
Tutorial Expert How-To - Add reusable Definitions
PascalDesmarets1
 

More from PascalDesmarets1 (8)

Tutorial Workgroup - Working with Forks
Tutorial Workgroup - Working with Forks
PascalDesmarets1
 
Tutorial Advanced How-To - Oracle 23c Duality views
Tutorial Advanced How-To - Oracle 23c Duality views
PascalDesmarets1
 
Tutorial Expert How-To - Docker-based automation
Tutorial Expert How-To - Docker-based automation
PascalDesmarets1
 
Tutorial Expert How-To - Create a model for Avro schemas
Tutorial Expert How-To - Create a model for Avro schemas
PascalDesmarets1
 
Hackolade Tutorial - part 12 - Create a REST API model
Hackolade Tutorial - part 12 - Create a REST API model
PascalDesmarets1
 
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
PascalDesmarets1
 
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
PascalDesmarets1
 
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
PascalDesmarets1
 
Tutorial Workgroup - Working with Forks
Tutorial Workgroup - Working with Forks
PascalDesmarets1
 
Tutorial Advanced How-To - Oracle 23c Duality views
Tutorial Advanced How-To - Oracle 23c Duality views
PascalDesmarets1
 
Tutorial Expert How-To - Docker-based automation
Tutorial Expert How-To - Docker-based automation
PascalDesmarets1
 
Tutorial Expert How-To - Create a model for Avro schemas
Tutorial Expert How-To - Create a model for Avro schemas
PascalDesmarets1
 
Hackolade Tutorial - part 12 - Create a REST API model
Hackolade Tutorial - part 12 - Create a REST API model
PascalDesmarets1
 
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
PascalDesmarets1
 
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
PascalDesmarets1
 
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
PascalDesmarets1
 
Ad

Recently uploaded (20)

Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Supporting the NextGen 911 Digital Transformation with FME
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Data Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Supporting the NextGen 911 Digital Transformation with FME
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Data Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
Ad

Tutorial Expert How-To - Export-Import with Excel template

  • 1. Hackolade Tutorial Tutorial – Export/Import with the Excel template Copyright © 2016-2023 Hackolade 1
  • 2. Excel template • Allows to exchange data between Excel and Hackolade Studio data models • Easy editing of properties in tabular format, and re-import into Hackolade Studio • Facilitates productive bulk actions for maintenance of properties • Capabilities: 1. Edit containers, entities, and attributes of existing models, or addition to existing models; 2. Select properties of an attribute that are exported in the Excel file; 3. Select custom attributes to be added in data types of the plugin. • Important: • References to definitions are not resolved • Version of Excel template must be same as target and plugin version of export process Copyright © 2016-2023 Hackolade 2
  • 3. Object selection • Tools > Forward-Engineer > Excel File… • May reduce list of objects to be exported Copyright © 2016-2023 Hackolade 3
  • 4. Object properties selection • Properties of each object are listed in corresponding sections • May reduce number of columns to be exported by deselecting unnecessary properties Copyright © 2016-2023 Hackolade 4
  • 5. Maintain export options • Tools > Options > Forward-Engineering > Excel Export • This configuration can be exported to or imported by other users of Hackolade Studio Copyright © 2016-2023 Hackolade 5
  • 6. Reverse-Engineering from Excel template • Tools > Reverse-Engineer > Excel Template… • Assumes that you have first Forward-Engineered the existing model • When creating a new model – first forward-engineer an empty model • Beware of the titles / order of the columns • Template does not enforce referential integrity between worksheets • If you want to import CSV files into Hackolade Studio, first import them into a Hackolade Excel template Copyright © 2016-2023 Hackolade 6
  • 7. Expected behavior • If target/GUID of the model match, updates/inserts to the open model are processed • For new model, entire file is inserted • Based on GUID, import will overwrite existing property values • If no GUID, object will be created / inserted in proper order • Complex structures are supported using dot notation • Multiple data types are supported also • e.g. {"id":"c973c0a0-7e84-11e9-9a55-eba2b9bb390e" ,"type":"string" ,"enum":["user" ,"owner" ,"tester"]} | {"id":"d7cd4e50-7e84-11e9-9a55- eba2b9bb390e" ,"type":"null"} | {"id":"cbd7a140-7e84-11e9-9a55- eba2b9bb390e" ,"type":"numeric" ,"minimum":"" ,"exclusiveMinimum":false,"maximum":"", "exclusiveMaximum":false,"multipleOf":"" ,"unit":""} Copyright © 2016-2023 Hackolade 7
  • 8. Reverse Engineering / Import validations • Import should never corrupt the model • import is rejected if the target of the Excel file does not match the target of the model; • only allow one line (other than the title line) in the model tab; • only import if tab names match acceptable values for the target; • column name (property) does not have to be marked for export in the config to be usable in the Excel import, as long as it is a valid “propertyName”; • attribute line referencing an entity not present in the entities tab cannot be imported. • entity referencing a container not present in the containers tab cannot be imported. • container referencing a model not present in the model tab cannot be imported; • unknown property value: can only accept valid values as previously exported and visible in the last tab "Lists" Copyright © 2016-2023 Hackolade 8
  • 9. Best practices for a successful integration • Excel export/import is best suited for bulk editing of existing models where you can leverage formulas, conditional formatting, vlookups and other advanced functions to facilitate modifications • It can also be used to create new models or add entities and attributes • BUT it is advised, BEFORE embarking on a huge effort, to: • Realize that Excel is a tool with: • a tabular design, i.e. not naturally built for nested structures (we use a workaround with dot notation) • limitations when it comes to ensuring the integrity of the data model (in other words, an Excel file obviously does not have all the business logic that is built into Hackolade Studio) • Start small and validate approach and use cases • Build an understanding for the behavior and constraints of the interactions between Excel and Hackolade Studio • Regularly test import process to detect anomalies in the Excel input • Progressively try more elaborate scenarios Copyright © 2016-2023 Hackolade 9
  • 10. Reading material • See Hackolade online documentation • The Hackolade Blog • This excellent new book: MongoDB Data Modeling & Schema Design • Many of the principles in the book are related to query driven modeling based on access patterns • Hackolade’s on social media: LinkedIn page, Twitter page • Download Hackolade Studio for free Copyright © 2016-2023 Hackolade 10