How I can learn mlir? - llvm-ir

Hi I just came from milr doc and got quiet confused.
I tried to work through the toy project, but cannot understand the mechanism and concept of dialect.
The tutorial just offered an example of some code, how they would interact with each other, how should I use them, it mentioned nothing.
As a beginner, I'm really lost and do not know what to do.
May someone please help me on how to compile a simple program that transfer source to mlir, using the current framework it provided.

The easiest way to learn is by doing some projects. For MLIR, I think you can start by first understanding and doing the Toy tutorial
Then see if you can extend it by adding a new operation to this toy language. If you found this interesting, try out a dialect conversion exercise (say toy to SCF).

Related

The Saga of understanding how to apply Axon

I was referring to the Axon documentation trying to implement a Saga: https://docs.axoniq.io/reference-guide/axon-framework/sagas/implementation
As is the case with everything else I've encountered thus far in Axon's documentation I could see no big picture, no diagrams or code examples or even any reference to example code in Github to help me get started.
I know what Saga means conceptually and what it solves. What I'm unable to understand from the documentation is how to apply that concept using Axon's artifacts. There is not one area that is written holistically and completely.
Does anyone have any good reference, books that helps me apply Axon? I'm currently evaluating Axon (and I'm not willing to buy the "support") and the quality of the documentation has almost forced me to look elsewhere (Eventuate).
I wrote this blog about Saga's with code samples I hope this helps you to get started.
Next to the blog that Yvonne has shared, you could take a look at this book from Vijay Nair:
https://www.amazon.com/Practical-Domain-Driven-Design-Enterprise-Java/dp/1484245423
It explains several approaches towards building DDD applications, with the last one diving into Axon's idea of it.
Added, AxonIQ is working on a training environment:
https://academy.axoniq.io/
So, a website with videos and written material about anything Axon-related.
The two courses that are on there right now, are free. Granted, Saga's/Process Manager aren't present there yet, although they should come soon.
When it comes to sample applications using Axon (that are maintained by AxonIQ developers), I'd refer to these:
https://github.com/AxonIQ/hotel-demo -> complete application touching as much of Axon's components as possible
https://github.com/AxonIQ/code-samples -> repository containing more fine-grained samples
https://github.com/fraktalio -> contains several sample projects, of which I'd recommend the restaurant, order, and courier demos
Apart from sharing the info, I am sad to hear you find the Reference Guide lacking at this stage. Any recommendations on improvements are from your current description, rather vague to be honest. If you have the time and interest to enhance this open source product, know you can always open some issue for the guide too. I am not asking you to write the documentation, but a description of the missed would be much appreciated.
https://github.com/AxonIQ/reference-guide

Starting out with Fstar

I have been reading about F-star from some of its paper and the F-star tutorial, but I find myself quite lost trying to understand its concepts. For example, dependently type, Dijkstra monads, etc.
What are the pre-requisites to properly understand and learn about F-star?
Any explanation of links to any resource will be helpful too.
You might find the following general resources helpful.
https://softwarefoundations.cis.upenn.edu/
https://www.springer.com/gp/book/9783540208549
http://adam.chlipala.net/cpdt/
None of these are particularly specific to F*, but some of the concepts you learn there will provide useful background.

Reflect, generate, compile, execute, disassemble, decompile, reflect

Before heading back to business, I decided to take a few days off for recreational coding. A few 30-hour days without fresh air? Sounds fantastic, for a change.
I've struggled with managed code generation over time and always wondered if there is a circular relationship between C# code, reflection and codedom. Never got around to exploring it sadly. So the goal is to create useless and annoyingly complex classes with nested generics, constraints, anonymous methods, delegates, nested complex reference types, etc. and use reflection+codedom to regenerate their source code from a class called CodeGenerator<T> where T would be the useless classes.
The inspiration came about from revenge frankly. Having a company to run takes you away from programming, and doing hobby projects in your nonexistent free time becomes frustrating due to lack of practice and being out of touch. I feel like an idiot right now but I'll show you! Stupid CLR! That said, please don't mistake this for a joke. I take these little vacations very seriously.
This came up most recently while trying to achieve this. I wanted to generate code without using string manipulation and was stumped at how to create a new XyzObject() constructor call at runtime. I do NOT want to use default(T) because it sets reference types to null. There HAS to be a way. Stupid CLR!
Why SO? Well, it should be a fun discussion to start with. Much to be learnt here.
So the plan:
Create a few useless and annoyingly complex classes.
Respond to amusing and/or silly suggestions from SO members (hopefully).
Attempt to traverse useless class structures using reflection.
Get down voted for getting stuck and asking stupid questions.
Successfully traverse useless class structures using reflection.
Attempt to regenerate code for useless classes using codedom.
Get down voted for getting stuck and asking stupid questions.
Successfully regenerate code for useless classes using codedom.
Gain knowledge along the way.
Use said knowledge on unsuspecting developers back home to enforce conventions through code generation.

What exactly is dynamic data?

What exactly is dynamic data? I saw the term in the ASP.NET Overview on msdn. Is it something that we use all the time thats not really mentioned when working with data?
I've built a few web applications already and never came across this term. Is it something that should be used or maybe considered?
UPDATE: I guess I'm not really sure what it's for. I've never had a problem doing LINQ to SQL or Entity Framework before. What makes using Dynamic Data worth it? Is it simply a pattern?
Dynamic Data was a new project type in VS 2008. It used scaffolding & templates to help code faster.
Two big reasons I saw for its usage:
Stand up an admin back-end really
quickly where doing much on the way
of modifying the front-end may not be
needed.
Quickly stand up CRUD apps that are
simple.
Now, it can be modified very heavily. Check out these links for some work others have done on this.
http://aspnet.codeplex.com/Wiki/View.aspx?title=Dynamic%20Data
Matt Berseth - http://mattberseth.com/blog/dynamic_data/
Stephen Naughton - http://csharpbits.notaclue.net/
http://weblogs.asp.net/craigshoemaker/archive/tags/Dynamic+Data/default.aspx
http://blogs.msdn.com/rickandy/archive/2009/01/08/dynamic-data-faq.aspx
Fast Forward to Today:
As MVC has matured they have introduced many of the ideas that were in Dynamic Data. Scaffolding, templates, etc... to help one quickly get up and running BUT also have the ability to modify more easily and is designed for many other desirable features.
Where does Dynamic Data fit today, especially with Light Switch thrown into the mix? Great question and my only answer at this point is it still fits for the two items originally mentioned but with the advent of MVC having these abilities WITH added capabilities and Light Switch it's going to see minimal usage.
The page you linked to has a link to the ASP.NET Dynamic Data Overview. Is there something on that page you would like explained?
Dynamic Data is a way to have your CRUD data logic written for you automatically using the Database Schema.
Take a look at this walkthrough to give you a quick jist.
It isn't something I use, but I can see where it has merit in a really rapid development scenario. I don't know if it will stand the test of time or prove useful or maintainable.

The Clean programming language in the real world?

Are there any real world applications written in the Clean programming language? Either open source or proprietary.
This is not a direct answer, but when I checked last time (and I find the language very interesting) I didn't find anything ready for real-world.
The idealist in myself always wants to try out new languagages, very hot on my list (apart from the aforementioned very cool Clean Language) is currently (random order) IO, Fan and Scala...
But in the meantime I then get my pragmatism out and check the Tiobe Index. I know you can discuss it, but still: It tells me what I will be able to use in a year from now and what I possibly won't be able to use...
No pun intended!
I am using Clean together with the iTasks library to build websites quite easy around workflows.
But I guess another problem with Clean is the lack of documentation and examples: "the Clean book" is from quite a few years back, and a lot of new features don't get documented except for the papers they publish.
http://clean.cs.ru.nl/Projects page doesn't look promising :) It looks like just another research project with no real-world use to date.
As one of my professors at college has been involved in the creation of Clean, it was no shock he'd created a real world application. The rostering-program of our university was created entirely in Clean.
The Clean IDE and the Clean compiler are written in Clean. (http://wiki.clean.cs.ru.nl/Download_Clean)
Cloogle, a search engine for Clean libraries, syntax, etc. (like Hoogle for Haskell) is written in Clean. Its source is on Radboud University's GitLab instance (web frontend; engine).

Resources