Logo

Home Projects

Devlogs Project progress

Wikilaterus Collective intelligence

Team Join us

Month 1: a new hope

After some time off we’re back in the open source world! This month was full of releases and progress in our projects. Let’s keep momentum!

Team progress

  • Efforts were focused on finishing Vortex because we need an alpha release as soon as possible so we can start building The Science of Code 2.0. It is not finished but we did a strong progress in that direction.
  • Released Picsor! We are using it for The Science of Code posts.
  • Released Bootstrap4.VisualStudio.StarterKit.
  • Improved projects documentation and starter guides (WIP).
  • New team members worked on asp core 2.1 proof of concept to foresee possible issues and to finish their preparation to start coding.

Daniel Cañizares

  • Vortex
  • bootlaterus
    • Create project (DONE)
    • Add a readme_md (DONE)
    • Add travis CI (DONE)
    • Base template
      • Sass WIP
      • Html WIP
    • Grunt
      • Sass (DONE)
      • Watch (DONE)
      • BrowserSync (DONE)
      • Copy html to dist folder (DONE)
      • Minifier
  • Bootstrap4.VisualStudio.StarterKit [Released]
    • Release a basic starter kit (DONE)
    • Documentation (DONE)
    • Repo
  • Picsor [Released]
  • Wikilaterus
    • Create repo and wiki (DONE)
    • Add C# coding guidelines (DONE)
    • Add ASP Links (DONE)
    • Publish as Github page (DONE)
    • Add Clonning steps.
    • Add Vortex links.
  • equilaterus gh-page
    • Add posts (DONE)
    • Improve layout (DONE)
    • Add deployment instructions (DONE)
  • Misc

Juan Felipe Cañizares

Edwin Osorio

  • The Science of Code 2
    • Web API POC (DONE)
    • Testing web APIs POC (DONE)
    • EF Core repositories (DONE)

David Castro

  • The Science of Code 2
    • Web API POC (DONE)
    • Testing web APIs POC (DONE)
    • EF Core repositories (DONE)

Discussion: Vortex Graph Configuration

Current style

// command
graph.CreateEvent(VortexEvents.InsertEntity);
graph.Bind(
    nameof(VortexEvents.InsertEntity),
    "_default",
    SubTypeOf<VortexAction>.GetFrom(typeof(InsertEntity<>)));

graph.Bind(
    nameof(VortexEvents.InsertEntity),
    nameof(IAttacheableFile),
    SubTypeOf<VortexAction>.GetFrom(typeof(InsertAttacheableFile<>)));

// query
graph.CreateEvent(VortexEvents.QueryForEntities);
graph.Bind(
    nameof(VortexEvents.QueryForEntities),
    "_default",
    SubTypeOf<VortexAction>.GetFrom(typeof(QueryForEntities<>)));

Proposals

// command

// Default insert
// Has the less priority
graph.Bind<Command>(
    EventName = VortexEvents.InsertEntity,
    Actions = {
        SubTypeOf<VortexAction>.GetFrom(typeof(InsertEntity<>))            
    },
    Priority = 0 // Default priority value for this kind of actions
);

// IAttacheable save file
graph.Bind<Command>(
    EventName = VortexEvents.InsertEntity,
    TypeInstigator = typeof(IAttacheableFile),
    Actions = {
        SubTypeOf<VortexAction>.GetFrom(typeof(InsertAttacheableFile<>))    
    },
    ApplyLowerPriorityActions = true, // Explicitly tell Vortex to continue execution
    Priority = 1 // Default priority when actions have TypeInstigator
);

// Softdelete
// We don't want to delete any entities or files
graph.Bind<Command>(
    EventName = VortexEvents.DeleteEntity,
    TypeInstigator = typeof(ISoftDeleteable),
    Actions = {
        SubTypeOf<VortexAction>.GetFrom(typeof(ISoftDeleteEntity<>))       
    },
    Priority = 999 // High priority!
    // ApplyLowerPriorityActions = false -> does not continue other actions execution
);
    
// Query for entities (Generic List<T>)
graph.Bind<QueryForEntities>(
    EventName = VortexEvents.QueryForEntities,
    Actions = {
        typeof(UpdateQueryFilter<>)                  
    },
    ReturnAction = {
        typeof(FindEntities<>) 
    }
);

// Query for int
graph.Bind<Query, int>(
    EventName = VortexEvents.QueryCount,
    Actions = {
        typeof(UpdateQueryFilter<>)           
    },
    ReturnAction = {
        typeof(QueryForInt) 
    }
);

// Discarded fluent design
graph.Bind(
    new QueryBuilder(VortexEvents.QueryForEntities)
        .Receives(typeof(QueryParams<>))
        .WithFilter(UpdateQueryFilter<>)
        .ReturnsOn(QueryForEntities<>)
);

24/09/2018