Domain Specific Language resources [closed] - t4

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I was just listening to some older .Net Rocks! episodes, and I found #329 on DSLs to be interesting. My problem is that I can't find any good online resources for people trying to learn this technology. I get the basics of the creating new designers, but the MS docs on the T4 engine used by the DSL tools and then how to integrate the templates with the DSL models are lacking.
Does anyone know of some good introductory resources for the MS DSL tools?

The architects of the DSL Tools team wrote a book, Domain-Specific Development with Visual Studio DSL Tools. The book's website has some other links and resources.

If you are interested in DSLs, Jeff Moser has written some great articles about them (and the 'meta' frame of mind you need) here, here, and here on his blog.

Martin Fowler is currently writing a book on DSL. Here is a presentation he gave on the topic.

For me the best source of T4 examples was this blog.

Since you're looking to the MS-world, you may want to look at F#. It offers the ability to extend its syntax to write domain specific languages (see this link, page 16 for sample code).

I found the following page with a number of webcasts very usefull:
http://msdn.microsoft.com/en-us/vsx/cc677256.aspx

A fantastic option for DSLs is Boo. I've been using it for things like setting up my IoC container, defining routes, validation rules. Ayende Rahien is writing an fantastic book on the subject for Manning called Building Domain Specific Languages in Boo

PODCAST: DSL Related Discussions in SE-Radio

Martin Fowler is writing a book on DSLs. You can read his work so far here http://www.martinfowler.com/dslwip/
I also went to a good presentation by Jay Fields (His slides are here).

I would recommend http://msdn.microsoft.com/en-us/vsx/cc677256.aspx for DSL Tools as a starter.
Also, check out the concept of MDSD (Model Driven Development).
An expert on that topic (and DSL's) is Markus Voelter: http://www.voelter.de/
I believe there are so many similarities between MDSD, Software Production Lines and DSL's in general that this 'new' way of doing things needs to clean up it's concepts.
That's one of the reasons why it's hard to find good information about the topic.
On another note, acm.org has an extensive digital library of research articles, articles from various conferences (such as OOPSLA), where you can find much information about DSL's, language designs, SPL, MDSD, and so forth.

Here's a few more websites that I find useful:
Advanced code generation patterns
DslFactoryUtilities
DslTools

For the Visual Studio DSL Tools (tooling to add graphical DSLs to Visual Studio), there's an introductory hands on lab here: http://code.msdn.microsoft.com/Visualization-and-Modeling-313535db
The homepage for the tooling with links to other samples is here: http://archive.msdn.microsoft.com/vsvmsdk

Related

To Joomla or not to joomla? Is it worth it when you know how to dream in CSS? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Alright masterminds. Should I consider joomla or just stick with hardcore coded webdevelopment?
Explanation:
I am basically a programmer with a pretty good command of HTML, Flash, Dreamweaver, Javascript ( though not an expert...yet).
I do not intend to design websites for customers, I do regularly design sites for my own projects.
I have seen some really cool web layouts done with joomla, and wordpress and the like. Now I know that these are content management systems and my projects are ( generally, though not always) not content management systems.
FOR EXAMPLE:
Say I had to design the website for t-mobile, or verizon, or vodafone with their phones and offers and what not, now should I be considering a complete design from scratch or should i pick up a nice looking joomla template and MODIFY it so users can browse for phones, order them , buy on contract ( i actually am working on a smaller version of such a site)
The point being , is it worth spending time modifying a joomla template to your needs or should you just build the whole site from scratch, because after all, "real coders are hard coders??" :)
Any of you out there shedding some light on it would be great help!
Thx
Out of all honesty, I would be more concerned about the functionality rather than design. If you are looking for something along the lines of a e-commerce site then definitely go for Joomla and use a shop extension such as VirtueMart of JoomShopping. With something like this you would need extreme PHP knowledge, therefore can make life very simple by using Joomla and extensions to go with it. Then you can choose a template of your choice of revamp a basic one.
Word of advice though, please oh please don't use flash ;)
Hope this helps.
IT depends on what you need really.
I've been building joomla powered websites for years and I have never modified nor used a ready-made template, but always built them according to the PSD (custom design), and for joomla (unlike wordpress for example) all you need to build custom looking joomla website is HTML / CSS knowledge and hopefully a good framework.

How do I get started with image processing? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am really interested in image processing. I downloaded OpenCV and started playing with it. But I think I lack the knowledge behind image processing. I would like to learn the basic fundamentals of image processing.
I searched for open course from MIT or other universities but didn't seem to find any good tutorial. I did find some slides, but they seem useless without the actually presentation. I searched for online tutorial but mostly they are not for beginners.
Is there a good online tutorial for image processing for beginners?
I recommend two books:
(1) R. C. Gonzalez and R. E. Woods, Digital Image Processing, 3rd ed. Prentice Hall, Aug. 2007.
(2) G. Bradski and A. Kaehler, Learning OpenCV: Computer Vision with the OpenCV Library, 1st ed. O'Reilly Media, Oct. 2008.
Visit the OpenCV documentation to get updated reference to the OpenCV functions (the Learning OpenCV book uses version 1.0 but the current version is 2.3). You can buy cheap access to the digital version of the book using Safari Books.
I really like Rich Szeliski's Computer Vision book which has a nice mix of theory and practice. You can also access the electronic drafts for free.
Other good ones are Hartley and Zissermann's Multi-View Projective Geometry and David Forsyth's Computer Vision: A Modern Approach
Sometimes the old fashioned way is best. I'd start by looking at what books could help me learn the subject.
Reading books is IMO definitely the way to go here.
The Learning OpenCV book also contains background information about the image processing tasks that can be executed with OpenCV. It might be a nice way of learning to immediately put in practice what you learn and read.
The OpenCV Wiki actually lists a few books they recomend, including one from O'Riley which I have always found to be a good source for learning.
Alan Peters Lectures on Image Processing
http://www.archive.org/details/Lectures_on_Image_Processing
PDF files: http://ia700307.us.archive.org/7/items/Lectures_on_Image_Processing/
--
MIT OCW: Biomedical Signal and Image Processing
See page
This site has tutorials in pdf format explaining how to do basic image processing with Microsoft C# (which is free of charge from Microsoft).
It also introduces and explains the mathematical notation that you will find in image processing books.

Review Orchards Project [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm looking for a base project which I could extensible and quickly deploy for small project such as company website, small shop, blog.... I've used Orchards http://orchardproject.net, but it's too sophiscated to understand internal process and customize.
Could you please review pros and cons of Orchard, or recommend me others that simplier.
Thanks
Orchard CMS is like a small laboratory for future ideas but it's quite hard to work with for real projects despite having some very good core ideas.
Pro:
ASP MVC with Razor view engine
Modules
Good documentation for a open-source project
Con:
Lack of automated generated admin UI (you write the back and front-end UI)
Lack or improper hierarchical data structures and 1:N/N:N relations
Too big and complex for small projects it trying to address
You may try Umbraco or just write a new ASP MVC application with a library of custom controls.
I have looked at both Orchard and N2 CMS and I would say that if you're developer and want a CMS that provides simplicity whilst allowing you to create quite complex sites then N2 is the CMS for you.
I'm using Orchard for developing some sites.
I love it.
It is not so easy to understand at first because there are so many little pieces to understand.
But after some time when the big (and the small) picture is more clear, you will appreciate the fact that you have to code (or just get from gallery and install) the little functionality you need.
If you need send an email, you use the corresponding module, and you never need to code yours or you can replace sending feature with a new one and it is available to all other modules.
Base framework includes some useful functions like db-layer, authentication e, indeeded, every other module you may install...
Have fun!

User Interface design books/resources for programmers [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm going to make my monthly trip to the bookstore soon and I'm kind of interested in learning some user interface and/or design stuff - mostly web related, what are some good books I should look at? One that I've seen come up frequently in the past is Don't Make Me Think, which looks promising.
I'm aware of the fact that programmers often don't make great designers, and as such this is more of a potential hobby thing than a move to be a professional designer.
I'm also looking for any good web resources on this topic. I subscribed to Jakob Nielsen's Alertbox newsletter, for instance, although it seems to come only once a month or so.
Thanks!
Somewhat related questions:
https://stackoverflow.com/questions/75863/what-are-the-best-resources-for-designing-user-interfaces
User Interface Design
Don't Make Me Think is the one!
Also check out Steve Krug's website for tips and sample forms for usability testing.
The design of everyday things ? An "old" classic, but useful if you plan anything that requires human interaction.
Joel Spolsky's User Interface Design for Programmers is at least entertaining, and a recommended read.
Tufte, Visual Display of Quantitative Information http://www.edwardtufte.com/tufte/
Don Norman, Design of Everyday Things http://www.jnd.org/
Although completely independent of web and programming, The Design of Everyday Things by Donald Norman taught me a lot!
For a less in-depth, more cook-book approach (if you don't want to think), try Robin Williams' The Non-Designer's Design Book: Design and Typographic Principles for the Visual Novice.
Presonally I much prefer The Design of Everyday Things.
Also take a look at Alan Cooper's About Face.
The Apple Human Interface Guidlines are great!
This is not directly related to GUI design or programming, but The Psychology of Everyday Things is a good book to read.
It is a general look at how things are designed and how they fail. The concepts in this book, although not directly applicable to GUI's, do apply. In fact you could say they apply to all instances of user centered design.
http://www.amazon.com/Psychology-Everyday-Things-Donald-Norman/dp/0465067093
AboutFace.3.0
The Essentials of Interaction Design would be good Idea to read
"Don't Make Me Think" is great. After sitting in on several usability studies I can safely say that several of his biggest points are the kinds of things drilled in your head over and over.
Joel Spolsky's book on user interfaces is also decent.
http://www.amazon.com/User-Interface-Design-Programmers-Spolsky/dp/1893115941
Additionally to the great hints given so far, also see the Windows User Experience Interaction Guidelines, as described in this interesting blog post by Kirill Osenkov.

What can Boo do for you? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
trying to get a side project hobby going to keep me motivated from my 9-5 job on C# and was looking at Boo. some ?'s
what has your experience being with Boo?
what kind of apps/projects have you done with Boo or
what is Boo capable of?
Guess being the web world, would like to get my hands dirty with desktop applications etc.
My personal experiences with Boo were from about 18 months back, and I've not followed it actively since then, so keep that in mind wrt to what I say. It is a cool language. But it is also experimental. What this means in practical terms:
You can do cool things w/ the language. The macros they allow, plus mixing in good features from ruby and python and other languages.
There is a WinForms designer you can use via SharpDevelop (which has Boo integrated as a standard development language).
There inconsistencies and bugs at occasionally critical areas because it is not done yet.
I'm not sure if Generics can be created yet w/ Boo, but they certainly can be consumed.
Performance is good, but the compiler doesn't have an optimizer.
Type inference is cool. Duck typing is cool. All that lets you approach the illusion of dynamic typing.
Personally, I worked on a tool to make creative writing easier. Think IDE for writers.
While it only uses Boo as the implementation language (rather than being fundamentally about Boo), have you read Ayende's "Building Domain Specific Languages in Boo"? It's not fully published yet, but you can get an early access edition.
I haven't had time to look carefully at Boo yet, but the main advantages over C# 3 (which gained some of Boo's features) appear to be terseness (lots of type inference) and metaprogramming.
Boo is very powerful tool for DSL creation (external and internal)
Internal DSLs can be created using Macros, Meta-methods and extendable compiler pipeline.
The extension of Boo language - Boo.OMeta.Parser can be used to create external DSLs.
Currently the parser is under development but it can already be used for creation of complex external DSLs. OMeta is powerful tool which enables programmers to easily implement lexical analyzers and parsers. Extendable compiler pipeline architecture of Boo allows to replace standard Boo.Parser with Boo.OMeta.Parser. It can be used to extend Boo syntax with almost any kind of syntax.
The example can be find here.
I am working a side-project with Boo to implement a declarative data-binding macro. The language is pretty cool! It is giving me some experience in compiler construction that I haven't had.
Just for fun I am working with Boo on Mono on Ubuntu 8.10.
Some usages that really fit the dynamic mindset of Boo:
Brail view engine
BDD with Specter
Embedding Boo in your nant script, or even building a build system from scratch
Embedding a 'shell' to interact with a live web application.
You should have a look at some of Boo's interesting language features.

Resources