Saturday, January 1, 2011

2011 resolutions

2011 is already here, and this are my goals for it:
  1. finish college (I'm a CS student, class of 2011) 
    • write a RIA DSL in Ruby for my Bachelor Thesis
  2. learn painting
    • this a hobby that I always wanted to have
  3. do more mobile development:
    • do two iPhone apps
    • do two iPad apps
    • do two WP7 apps
  4. learn and do more stuff in:
    • clojure 
    • objective-c
    • ruby
  5. learn 10 recipes well
    • learn two: Italian, Indian, Romanian, Hungarian, Mexican 
  6. optional
    1. learn to dance
    2. learn french
Happy New Year!

Thursday, December 23, 2010

ALT .NET

ALT .NET want's to be an alternative community of .net developers. It wants to be alternative to the msdn way. http://altnetpedia.com/



What is ALT .NET?
Jeremy D. Miller
Last year David Laribee coined the term "ALT .NET" to describe a coalescing community of like-minded individuals within the larger world of the Microsoft® .NET Framework who felt a growing frustration that Microsoft tooling, guidance, and .NET culture at large did not reflect or support an important set of core values. In October 2007, some hundred-odd souls descended upon Austin, Texas, for the first ALT .NET Open Spaces event, turning the blogosphere buzzword into something more tangible and kicking off the formation of a real community.
So what is ALT .NET? And how does it differ from the .NET that we already know and love? What are these values that many of us think are missing? What are these alternative tools, techniques, and practices that ALT .NET'ers are espousing? Let's first examine the original tenets of being an ALT .NET developer.
  1. You're the type of developer who uses whatever works while keeping an eye out for a better way. One of the common topics at the ALT .NET event was closing gaps between requirements, testing, and code. There's still fat in the way we develop software that can be eliminated.
  2. You reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby. In no way does Microsoft or the .NET community have a monopoly on good software development. For instance, Agile processes and Design Patterns started with Smalltalk. Likewise, Inversion of Control tools and techniques originated in Java. And two fundamental Ruby on Rails principles—Don't Repeat Yourself and Convention over Configuration—are ones that we can adopt in .NET.
  3. You're not content with the status quo. Things can always be more elegant, more mutable, and of higher quality. We're all experimenting with techniques to more closely connect the coding and testing to the business domain. For example, Behavior Driven Development (BDD) refines and extends Test Driven Development (TDD) by specifying the intended behavior of the code in a more readable way than classic xUnit testing. And language-oriented programming has the potential to raise the abstraction layer up to the level of the domain logic.
  4. You realize that tools are great, but they only take you so far. It's the principles and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principles (for example, ReSharper). Furthermore, you feel that the most important qualities of a solution are maintainability and sustainability. Maintainable code means good design. Good design arises from the skillful application of design knowledge. The .NET community has been placing too much focus on learning API and framework details and not enough emphasis on design and coding fundamentals.
Part of the catalyst for the raising of the ALT .NET banner was a demonstration of a beta of the new Entity Framework in March 2007. I, along with several others, was disappointed at certain elements of the Entity Framework, specifically the lack of "Persistence Ignorance" and the tight coupling to the database. At that time, the Entity Framework did not appear suitable for TDD, Domain Driven Design, or Continuous Design—all things that I consider valuable for maintainable development.
On the other hand, the new Model View Controller (MVC) Framework for ASP.NET development is exciting because it explicitly supports and enables the values I feel are important for successful software development. The MVC Framework clearly reflects the values of maintainability and testability with an emphasis on Separation of Concerns and testability throughout the design of the Framework.
It's easy to be cynical or apathetic about the state of development. However, instead of lamenting that Johnny can't code and complaining that it's hard to find good developers to hire, perhaps we should admit our main problem: we're terrible at growing strong developers.
Many developers would be happy to use Object/Relational Mapping and TDD if they just knew where to start. Likewise, folks already practicing these techniques want to get better by interacting with other practitioners. My chief hope for the ALT .NET movement is that it creates a community that assists both groups, helping them all become strong developers. To that end, the Altnetpedia Web site (altnetpedia.com) has just opened for business with the beginning of a list of resources for learning how to apply these techniques in .NET. The altnetconf message board (tech.groups.yahoo.com/group/altdotnet) is already up and going strong as a place for .NET practitioners to discuss development topics. Stop by!
[Source] 

Sunday, December 19, 2010

awesomeness

I have a strong believe that tablet programming is and will be with us for the next decade. Not only that it will be here but it will be the next desktop.
Wait! Next desktop platform? Not really the correct way to think about tablet programing e.g. iOS & co. is like the web that you never had and you forever wanted. Yes tablet is the new web => lots and thousands of tablets interconnected by the cloud... 

Now, you should know that the web isn't what you see in the browser but is about "the network" the thing that keeps us connected. So, if we come back, tablet programming is the new Web and definitely a better one - this are the actual's web www frustration:
  1. IE die
  2. IE & co. die
  3. browser dependent security (on some levels)
  4. hard to establish standards (can I be awesome with html5 apps?)
  5. no blinders for the blinding in need eye (cool 3d games)
  6. click click click back click black back (this sucks)
  7. ... ok right now I don't feel so masochistic to think about the other downsides.
but now tablet programming, yeah this brings the awesomeness in the web, now why?
     desktop performance + mobility + internet = tablet programming 

and why is it cool?:
  1. touch
  2. touch
  3. touch
What is our first, primal, primitive mean of learning and understanding the environment that surrounds us, even from baby perspective... well that will be the touch.

Only one lack at the moment - is paintable with few technologies, and pretty much we only have one good canvas - the iOS.


from starbucks with bitterness, Andrei T. Ursan


Sunday, December 5, 2010

music

ruby - joe satriani
objective-c - yngwie malmsteen
clojure - 21st century classical music


i listen to a lot of music. and for each of my moods i know where to dig for the required music pattern. can we do the same for programming languages?
“Computer programs are all just text. And the language you choose determines what you can say. Programming languages are what programmers think in.” Paul Graham (Preface of Hackers and Painters)
malleable, flexible, quick and expendable - this are the ways you can think in the above languages, it was always hard to chose between them, until i noticed that i do like more than one musical genres.
learning one of them will only give you a seed which will grow in the next one that you chose to think in.


ruby - creative
objective-c - expressive
clojure - elegant




never forget to play the music inside you, Andrei T. Ursan