Saturday, November 3, 2007

XBOX 360 D-Link 624

So the power went out... again... this time I could not reload my router settings from config (checksum error!) So I had to google my way back to XBOX Live...

have to open
udp 88
udp/tcp 3074
udp 53

The last one is very important... if I don't have all the above opened up for XBOX, my dlink router will actually reboot during xbox live tests (and fail of course.)

Back to fun.

Tuesday, October 30, 2007

“DynLangs” and you…

Unless you have been living behind your monitor and keyboard only to look up to find the coffee mug you knocked over, you've most likely heard about all the attention dynamic languages, or dynlangs, have been getting these days. Dynamic Languages (or scripting languages) have been taking their spot in the limelight in recent years... I feel this is in large part due to the readily available video streaming sites showcasing the benefits of such languages/frameworks.



For those willing to step outside the compiler, large gains in productivity abound. And with so many dynamic language options being implemented on the JVM, JSR 223, and attention from large companies... dynlangs are quickly becoming viable options in companies and organizations that would never have considered using them in the past.

If you primarily work with a compiled language (Java maybe?) and don't want to miss the productivity boat, you may want to review the following list comprised of just a few languages/frameworks making waves (on and off the JVM) :

Languages



Ruby


Object Oriented, interpreted, dynamically typed language. Created by Yukihiro “matz” Matsumoto, everything is an object and every class is "open" for change.

JRuby


JVM implementation of the Ruby language... provides the ability to use the Ruby language and leverage the existing capabilities of the Java Virtual Machine (and all it's libraries.)

Groovy


Dynamic OO language built for the JVM... "builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk"

Python


Dynamic OO language, embeddable, integration friendly, dynamically typed. Strong user base.

Jython


JVM implementation of the Python language... project has fallen behind the Python pace, but new life buds. As with most JVM dynlangs, Jython provides Java integration.

Scala


Type-safe, both object oriented and functional. Written for the JVM so the Java integration is there.

Rhino


JVM implementation of the JavaScript language... all you would by now expect from a JVM dynlang, Java integration, embeddable, shell access.
... and of course...


PHP


"PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML." Heavily pervasive, low barrier to entry, object oriented with PHP 5, large library code base.
(PHP can now run on the JVM too: Quercus)


Web Frameworks



Ruby on Rails


"Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern. From the Ajax in the view, to the request and response in the controller, to the domain model wrapping the database, Rails gives you a pure-Ruby development environment. To go live, all you need to add is a database and a web server." ORM, MVC, JavaScript and templating for views...

Grails


"It's an open-source web application framework that leverages the Groovy language and complements Java Web development." Inspired by the Ruby on Rails framework (at least at one time it was.)

django


"Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design." ORM, MVC we're seeing a pattern here...

Symfony


"Based on the best practices of web development, thoroughly tried on several active websites, symfony aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure." (PHP web framework)

Did I miss a dynlang/framework you enjoy working with? (most certainly...) Then drop me a line in the comments below and let me know what dynamic language or framework you use to get your job done!

P.S.
One of the best implementations of a dynamic/scripting language IDE around (non-trivial task): NetBeans Ruby Support (thanks Tor)

Wednesday, December 20, 2006

To compile or not to compile?

That is the question... I had a conversation with a few guys from our local Java Users Group about PHP, Ruby, (scripting languages in general) vs. compiled languages. I have a background in both so I had some strong opinions and thought I'd jot some of them down.

First off, I am of the opinion that scripting (dynamic) languages and compiled languages have their own respective places in programming. There are good and bad languages out there and whether or not they are compiled doesn't enter that argument. People calling scripting language users "hacks" is ridiculous. This is most likely coming from someone having done compiled language development all their career. The one time they tried scripting something, they got bit by the loss of type safety or could not "refactor" or something along those lines. We mock that which we don't understand...

The fact is, scripting languages give you more flexibility, but with that comes responsibility. I worked in a group that did scripting for Web stuff and we had TONS of code, no IDE (just vi) and had successful "deployments" all the time. You have to know what you are doing when you start messing with a scripting language code base. Now if you start mucking with some code written in Java, you can use an IDE to help you along the way. I think it much easier to get your feet wet in Java once you understand OO due to the great IDE's out there that will help you. But once you get going with PHP or Ruby... you can fly, and your development becomes more agile due to the flexibility an interpreted language gives you.

I write code in a few languages, compiled and dynamic... and the bottom line is: the code you write is really just a dumbed down human version of instructions, it's documentation. A compiler (at some point) interprets your mess and sometimes through more conversions finally makes something the computer can understand. You can't argue which is better unless you are talking about a specific problem domain with all else equal.

Happy coding!

Friday, December 8, 2006

Trying new setup…

So I heard about NginX and figured I'd give it a try. The setup for NginX (pronouced engine X) was a breeze. I have a few Mongrels running behind it and things seem to be going pretty well at the moment. I still would soo much like to see a nice packaged server solution for Rails running in a multi-threaded environment. YARV, hurry up! :)

Friday, December 1, 2006

Benefits of Ruby

For me, one of the real benefits so far is getting me back into the C world... I've been away for some time doing Java mostly so it's fun to get back into the swing of things.

I've just recently found the YARV project. From what I have seen so far, it appears to be working toward a multi-threaded version of Ruby which makes me very happy! Ruby is a very cool language and serves a good purpose. Rails is wonderful for getting things off the ground soo quickly... but in today's web world, non-thread safe languages pose a few barriers.

These barriers can definately be overcome (and are everyday) but the web is a multi-threaded world... if YARV does push Ruby into the MT way of things, I think it will only serve to boost the already crazy swirl surrounding the Ruby/Rails phenomenon.