»
S
I
D
E
B
A
R
«
IntelliJ IDEA 9 released
Dec 9th, 2009 by evereq

Hi! It’s good news today for a lot of java, ruby and groovy developers – new version “Maia” (officially v9) was just released by JetBrains with a lot of new features (including faster environment, extensive Java 6 support, build-in Google App Engine and Grails projects support etc) – feel read full “What’s new” list.

There exists also not so good news – this time for PHP developers – support of PHP was removed from release of free (”community”) version of IDEA, so developers can stick with other completely free IDEs this time :( – for example NetBeans comes to my mind this time… as alternative… but after Oracle buy Sun, I not sure it is right choice… but this is “idea” for another post…)

Actually personally I don’t understand why “Community” version does not support PHP, Javascript, Python or Ruby as this languages are used by a lot (if not most) of “open source” developers that for some reasons does not feet into JetBrains licensing of commercial version of IntelliJ IDEA for open source projects. I think “vice versa” if compare to JetBrains – Commercial version must have extended support for Java development, while Community edition must support MORE other open source frameworks / languages, like Ruby, Python or PHP etc. Sure it’s only my “personal” opinion, but I think most of developers will agree with me – people that use IDEA for Java development (usually in enterprises) can (and will!) simply BUY commercial licenses, while a lot of potential IntelliJ users actually want to use it for small open source projects in non-Java languages stack and want to get IDE for FREE!

But totally – all new features show that JetBrains go in right direction – support for most “progressive” and “latest” technologies in IDEA (even if it is available only commercially ;-) )

Keep it going, JetBrains! ;-)

Servers and Applications Monitoring
Dec 2nd, 2009 by evereq

Let’s review following common situation – your company grow as well as amount of servers and applications in your web farm :) (yes, you still use own web farm instead of moder Cloud because of native “hard” code of your applications ;-) )
Of course you want to have a way to at least monitor servers and applications from centralized console!
More so, sometimes you also want to be notified by email or SMS that something going wrong with some of servers / applications.
How to made this wish real?

Solutions:

  1. Write own low level code that will read and collect some way information from servers / applications. This way usually “hard” as you will probably spend hours to figure out how you can get CPU temperature, fan speed or how to made network ping in your favorite language using some low level OS API!
  2. Use one of existed libraries and write application that can read and collect some way information from servers / application via this library. This way is much better and simple if compare to previous one! Library give you abstraction from low level system details (and it’s more important if you use different hardware / software architectures in your web farm). One of examples of such libraries is SIGAR (http://sourceforge.net/projects/sigar, http://support.hyperic.com/display/SIGAR/Home) – completely free and open source with support of amazing amount of OS / architectures). Another useful library – RRDtool -
    use it for data logging and graphing system for time series data and “to write your custom monitoring shell scripts or create whole applications using its Perl, Python, Ruby, TCL or PHP bindings”
  3. Use one of already existed monitoring applications – Open Source / free or commercial. If you want open-source and free take a look into Nagios for example, with a lot of  plugins / addons (actually one way somewhere between 2) and 3) is to just create your own Nagios plugin and use it together with Nagios to monitor your servers and applications). But be ready that you will need to dial with a lot of installation / configurations issues and that you boss will not understand how he can use this soft (at least before you will found or build cool visualizer for Nagios). So in case if you did not dial with it before or you just want something “reach”, with nice UI etc, I recommend to give a try to ManageEngine Application Manager with ability to monitor up to 25 servers / applications in free version (in terms of ManageEngine you get “25 monitors” for free) or to try Hyperic HQ (exists in both Open Source and Enterprise versions). Both have nice UI, very simple installation (just currently Hyperic HQ needs to be installed manually for example on 64 bit Windows OS as no installation package exists for now for 64 bit  etc) and configuration. Both can be extended and adjusted very well for your situation. So review both applications and select one that feet better your needs (they have little different features and final cost will be different based on your situation. Generally as more servers / applications you need to monitor as more cheaper Hyperic will be if you will compare it to ManageEngine). Another well know solution is “Zenoss“, which have both commercial (really expensive – starting from 100$ per year per resource) and open source versions (sure open source have just “core” functionality, but it’s reach enough to take a look into it)

Maybe you know another way / library or application ? ;-) Let me know and I will update this post!

Google “Go” become “issue 9″
Nov 19th, 2009 by evereq

Today I get a talk with my friend regarding new programming language emerged by Google with “interesting” name  “Go”.

Actually we both agree that we don’t see any reason to invent another “low level” / “middle” level compiled programming language… with Nothing NEW inside (see notes at the end of the post)! Just reuse of best practices, but with a LOT of limitations compared with C++ for example  (just take a look here for some comparison information – most impressive that Google decide: “Go does not have classes with constructors or destructors. Instead of class methods, a class inheritance hierarchy, and virtual functions, Go provides interfaces, which are discussed in more detail below. Interfaces are also used where C++ uses templates.”… very strange for me… I can agree with C# approach for such details, but seems Google approach is too much!!! I note sure is it really OOP  or not if you have only interfaces in hands…. when I do everyday development in C#, at least few times per day I not happy that I don’t have true multiple inheritance, what developers will say about “Go” if they start use it everyday??? )!

Personally I think that if Google want invent some “own” programming language (and only in case if they really want OWN…) they need to take a look into high (or very high) level multi paradigm languages like  F# or Scala (or at least on Groovy with his meta programming features for example) and does not invent another “c/c++” or “Python” inspired language !

But what is most interesting and curious is that Google give the name for new language exactly same like another person name his language few years ago!  To be more concrete, go to the issue 9 page in google issues tracking page for new language:

“Issue 9: I have already used the name for *MY* programming language”

Amazing! Just read comments! Ha ha ha! Never see something like this before regarding programming languages! Google took this name and even not “google” for it ;-) ! Amazing stupid mistake! Yes, even companies like Google with best and talented people made such stupid mistakes! Actually, I not sure that name “Go” anyway is a good name for such language (and not only me think this way – read comments to issue 9 to get many examples!)…

Even for me, with average (or even low) level of English it looks strange that something that they promote as “fast” have the name “Go” (as we all know most of things that “Go” is slow by default)… Why they not name it “Run” , if they want that this language actually “run” ?! Or like many people suggest “Goo” (from Google) ?

Anyway, it looks really curious…….. :)

Hope this will just “push” Google to develop BETTER OWN language (it MUST be HIGH level or VERY HIGH level language for sure!!!) and probably select for it BETTER name!

Notes:
1) in this post I follow latest definitions for  “low level” and “high level” languages… Sure long time ago, “low level” was assembler and C was “high level” language! But currently, it looks like languages like C become really “low level” also! You can check for example following Wikipedia article to get more information).  After reading most of information on Go language website, I still not sure can we call this language “Object Oriented” for example… In most areas approach of Google looks minimum “strange”… Except maybe how they implement concurrency… Maybe I just need to try to code something on it to get  better understanding?)
2) Please note that I DON’T describe “Go” language as “bad” language. Instead I just put it to “low level” or “middle level” where it looks perfectly!  Sure Google will found A LOT of ways how to use this language (and I think maybe already found such ways – for example to embed it in Chrome – read more here) and will “push” usage of  this language inside Google and sure outside! And Google really have resources to do this! And some people will probably LIKE new simple but speed language! What I just NOT happy is that this language is NOT really high level language (NO Generics for example, at least by now!). Sure it’s just first release, maybe Google will improve it… but  Google likes “minimalism” style, so….. Anyway, let’s just wait a little! Maybe they change language name and Universe! ;-)

»  Substance: WordPress   »  Style: Ahren Ahimsa
© Copyright 2008–2010 EvereQ.com All rights reserved. Logos, company names used here if any are only for reference purposes and they may be respective owners right or trademarks.