What are the best resources to learn JuMP? - julia

I am new to JuMP / Julia. Do you have some suggestions or advice about how to learn it given that there are so few resources on the internet ?

Go to the fore mentioned quick start guide and run the examples.
JuliaCon lectures are also a good source of information and can be found on YouTube.
Once you get through there is a collection of JuMP notebooks at JuliaOpt.
Using JuMP is simple. However, difficulty might arise due to frequent changes to APIs and interoperability between versions (sometimes you will come across an example that just does not work).

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

Learn programming for CnC lathes

I would like to learn programming for CNC lathes.
First, what open-source programs (similar BobCAD-CAM) would be best?
Second, what is the best way to proceed in learning to use the programs?
I look forward to learning the answers to my questions. Thank you!
There are a few good free CAD/CAM programs you can get off the net, just look on google. Personally, I recommend using Featurecam or Mastercam ( although neither are free, but they are good programs.)
As for learning to program, this website has a lot of useful information http://cnc-programming-by-gord.blogspot.com/2012_07_01_archive.html
I hope it helps you like it helped me.
Autodesk Fusion is free for hobby users. It allows you a full CAD/CAM package with loads of tutorials online and on Youtube. for simulation OpenSCAM will allow you to check on your code. Some of the fancier live tooling lathes have some machine specific stuff on them but in the end a solid knowledge of G-code will help decipher it.
#1, you need to know which lathe & which controller you want to program. Then get the manuals for it. Some G & M codes are similar across many machines, but not all of them. So, get the proper programming manual for the exact machine.
#2, research the CAM software you want to learn. Are there certain shops you want to work at? Well then, what do they use? Research the most popular packages in your area. Figure that out & then learn the specific software. Otherwise, you're wasting your time.
Depending on what you pick, there are videos out there to give you a good idea of how they work. Re-sellers offer classes. Some websites have tutorials & manuals. Again, don't waste your time learning something you might not even use. Even after you pick something, the different versions of it have proven to be very different. So be sure you're learning the right software & the right version.

Advice me what to do with large project when you work alone !

I bet many of you were in such situations in the past.
I'm currently working on huge ASP.NET web project. Ad management system of some kind. My boss doesn't want to get more professionals to help me but gives me inexperienced staff that don't even know to program on ASP.NET and think it is an easy task. I deal with programming and design
What advices do you have to handle the boss ?
What tools can help me to ease with this task ( except usage of this very website )?
Thanks
I would hope good source control is something you already haev on your list but I think its always the best thing for any big project. Keeps your code safe and has the added advantage of allowing easy review of what your team are checking in if you feel the need for oversight.
Other than that just make sure you give your boss a realistic understanding of the time taken for various tasks and if he complains make it clear that your team needs more training if he wants stuff done faster.
P.S. [Edit: removed as no longer relevant]
You could ask him for a raise from getting rid of the people who are not helpful. that might actually save him money and make your time more worthwhile.
What advices do you have to handle the boss ?
First make sure you have a good analysis document and that you have for every dependency a spoc (single point of contact). Make sure the people who you're making this application for are integrated into the process. I suggest using something like scrum but certainly daily standup meetings.
Use a good system to follow up on everyone like for example TFS2010 which has also testing capabilities integrated so your testing team can be better integrated.
Have a bug tracking tool and source safe handy. Continuous integration is also an asset.
but gives me inexperienced staff that don't even know to program on ASP.NET
It's your boss intention to upgrade his people to a level where they are capable of programming ASP.NET applications in the end. What way to better learn it than hands on experience from a dedicated professional like you?
Be aware: you're dealing with people now, not just code. They get sick, have their strenghts and weaknesses just like you. And believe me, it can be a challenge sometimes to deal with the human part of a project. Especially when there's pressure due to release dates.
Perhaps you can convince him to distribute some (technical...) parts of the project to RentAcoder.com or getAfreelancer.com? It will be cheaper than getting more manpower..
Use a decent workitem/bugtracking system. This won't turn your 'inexperienced devs' into experts but at least you'll be able to see what progress they are making(or not making as the case may be)

How do you learn a new skill/framework/technology?

I need to be able to contribute to a relatively large Adobe AIR project and I'm starting from scratch with this technology. What's the best way to go about it?
I usually get a good book/tutorial and work my way through it but this time it seems there's just too much to learn for this to be feasible within a reasonable time frame. I would need books on Actionscript, FLEX, etc...
Do you know of any good resources that might be useful for this particular case?
How would you go about it if you were in my shoes?
I just had to do something similar. If you can afford it (or, get your company to pay for it), try doing a training class. I did one by Figleaf software a couple months ago and it really helped.
As for books, I hear the Essential Actionscript 3 book is good (I have the one for AS2 and it's quite good). Flex is really just the SDK. You'll be doing most of your work in AS3 and MXML.
Another really good thing to do is download the SDK and start playing with it. Think of a couple small apps to do, then write them in Flex. I did this at work (wrote a couple util Apps in Flex to learn it). I find the best way to learn is to do it, and the SDK is free so there shouldn't be anything stopping you.
Hello World for AIR, then progressively add detail.
Aggressively use any communities out there.
Blog about your experience. One day you will help someone else.
Today you are learning, tomorrow you are teaching.
I download samples from the Internet, and run them, mess with them, try to change them and understand how they work.
I subscribe to blogs on the topic and do samples, try to understan the stuff people write about.
And I do samples :)
So I basically learn from the top - down. First I get the general sense of the technology, and then I drill down with the samples to the parts that I find interesting. Works pretty well. :)
I usually find online tutorials are the best way to go. They are more to the point than books, so it's usually quicker to get up to speed. And don't limit yourself to a single resource. I've never had problems finding enough tutorials through our friend google.
I have no knowledge about Adobe AIR though. I assume your customer knows you're a noob too? ;D
I'm a big advocate of active learning, which is described in detail, here. Essentially, when you are trying to learn a new technology: read about it, discuss it with your peers, teach it to people who are even newer to the technology, and most importantly, get your hands dirty.
A perfect example of how you can learn new things is by getting involved with a community such as stackoverflow, or a discussion forum based around what you would like to learn (http://www.adobe.com/devnet/air/), or even by contributing to an open-source project.
Of course, none of the above is as effective as trying new things out. In order to learn new technologies (in my honest opinon), it is best to dive in "head-first" and try things out.

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