Archive
First Code Project Article
So, after writing the article I blogged about a few minutes ago which I wanted to publish on Code Project it seems that it’s been added to the “Unedited” articles side of the site. This was actually less painful than I would’ve expected aside from the fact that I had to do HTML for the first time in a while. If you’re interested in reading it and giving me your feedback, I would love to hear from you. You can find the article both on this site under my article “Memory Queue” or on Code Project as the article aptly named “Memory Queue”. The article on Code Project has the source code that goes with it and I’m hoping to have more articles to publish soon… 🙂
Memory Queue
So, I finally managed to finish the first article that I hope to publish on Code Project. In this article I cover a little infrastructure object that works as a Memory Queue. I expand this object to be encapsulated by a Thread Queue, which I then use to build a Logging Framework. It explains a very simple pattern to use when you want to assign work to multiple threads without having to worry too much about Thread Synchronization and all those things that goes with it. It’s super-fast as you’ll be able to see in my Logger implementation and can be used in so many different scenarios. As I take strides in writing new articles that cover my Architectural series of articles I’ll be adding to this little project so I can build a complete framework that can be used and built on in my coming articles. My hope is to have a complete sample of how to write software using various technologies including Ruby, C# and Java as the services technology while using both JavaScipt and Silverlight as my User Interface technology. By doing this I want to show how you can completely separate concerns by using simple patterns that work for the specific tool set that you choose to work with. This is going to be quite a journey and the main aim for me taking this journey is to end up in a position where I have a complete understanding of the technologies mentioned above as well as the concepts I’ll be covering.
I’ll update this site as soon as it’s been approved by the powers that be over at Code Project. In the meanwhile if you would like to have a look at the article you can go to it by clicking here. I hope you enjoy this first article as much as I do and I also hope that you’ll give me some feedback.
Setup – Jenkins and RVM
I’ve just completed another article related to Environments called “Setup – Jenkins and RVM“. In this article I take you through the setup process to get Jenkins and Ruby Version Manager (RVM) to play nice with each other. I start with the Build Server and RVM setup and then take you through to pulling your first GitHub hosted Ruby code, doing a Bundle Install and finally running a rake for your Unit Tests. I hope this will help someone out there, seeing that I have struggled to understand why things on Jenkins don’t work or why my Jenkins install doesn’t pick up that I have RVM running with the correct Rubies. It was fun and it seems to be working. So, enjoy!!! 🙂
Setup – Requirements
After writing some articles on this site and having to copy and paste the same text from some of my other articles over and over and also getting a bit frustrated in having to look up which requirements need to be installed where I decided to dedicate and article to this topic. You can find the article under the “Environments” menu and I called it “Setup – Requirements“. If you want to run Ruby or NetBeans or Apache or something else, then you should run through this list of things first. I would suggest that you start at the top. Why you need to install most of these packages, I’m not going to go into other than to say that you’ll be saving yourself lots of hours on Google trying to figure out why some Ruby Gem is telling you that it can’t find a package while the package is installed already. There are some strange dependencies when you want to do the most arbitrary things. I hope this helps someone out there and that it gives you a bit of a head start when installing your Development, Build or Production environments.
In the coming days I’ll be changing my articles to all point to this to ensure that it’s a but easier to get through an article without having to do some research or find that article that outlines the steps in a reproducible way. Enjoy!! 🙂
Using – Ruby Version Manager (RVM)
I’ve just completed a new article called “Using – Ruby Version Manager RVM” which will be another article that I’ll refresh, change and update on a regular basis. Ruby Version Manager (RVM) is one of the best tools to use when you do Ruby Development seeing that it allows you to run multiple versions of Ruby and Gems together and to switch between these environments in an easy and straightforward way. The idea behind RVM is to have a sand-boxed environment that does not affect your system installs and can be dumped and recreated ad-hoc without having to worry that you’ll be breaking things on your system. By way of Gem Sets it also allows you to weave different Rubies together using different Gems. In all it’s an extremely powerful tool and in my upcoming article where I’ll be going into the use of Bundler and how you can use this powerful Gem with RVM, you should start seeing some of the more powerful management tools at work.
I’ve found RVM to be a life saver and can’t really imagine writing code in Ruby without it. When you start mixing in some of the other tools like Bundler, you’ll see how the power of Ruby and these tools come to life. I hope you enjoy it and that you learn something from the article and if you have feedback on the matter or if you would like me to explore certain point in more detail, please let me know.
Related Articles
- Ruby and some updates (yakiloo.com)
- How do I keep multiple Ruby projects separate? (rubylearning.com)
- Ubuntu, Ruby, RVM, Rails, and You (ryanbigg.com)
- Gem Bundler on Heroku (heroku.com)
GitHub – Getting Started
Even though I’ve been away from this site for a while (bad, really bad) I am coming back to it with some ideas and hope to continue the fun. So, for my come back, I’ve just published a “Getting Started” article under the Environments menu for getting into GitHub and I’ve also added a “Source Repository” menu item under the “About” menu that should take you to a place where I’ll hopefully be hosting some of the source of those articles that I’ve been promising for so long. I did some research on the various online repository hosting companies and must say that the solution that GitHub gives you is very comprehensive. So, I chose them as part of my “Ultimate Environments” range of tools I would recommend and that I will be using myself. Take into consideration that the entire range is still under construction and I will be refining, changing and adding more information as I continue. So, none of the articles on this site will at any stage be seen as complete, just like the code we write on a daily basis. In the real world, we only stop coding on a project when we start with a new one and if we start with a new one, we all know that we did the previous one wrong. I hope you like it and find it helpful and I look forward for any feedback and changes you may like.
Ruby and some updates
So, I’ve been quite busy learning some new things in the last couple of weeks which is why I haven’t been blogging or writing articles. Amongst the things that I’ve been busy with is writing some articles for Code Project which I’m hoping to publish in the next month or so. Some of the other things I’ve been busy with is playing with Ruby and the toolkits currently available in that space. Coming from a Java/C# background it’s been quite an experience jumping into the declarative dynamic world of Ruby and I must say that the more I play with it the more I’m starting to enjoy it. So, my setup is something like the article that you’ll be able to find on this site here. In the quest of learning more and more technologies and writing these articles I’ve come to appreciate the ability to slow down (in my private time) and to really think about what I’ve been doing and how all this newly found knowledge will affect my trend of thought and the way that I go forward in development and technology. As I state somewhere on this site, it’s all about using the right tool for the right job. Just because I’m a C# developer with a Java background doesn’t mean that those are always the right tools to get things done. Yes you may be able to do anything in your chosen technology, but does that allow you to really understand the problem you’re trying to solve or does it really make the Technology you use and the constraints it introduces your main focal point. As I’ve learned, the more you know, the less constrained you are by what you don’t know… Maybe ignorance is bliss and we should simply continue in the way that we always have, but then where’s the fun in that right? 🙂
Related Articles
- Digging into Ruby Symbols – O’Reilly Ruby
- Do You Understand Ruby’s Objects, Messages and Blocks?
- Ruby’s of Coney Island: ‘We Will Not Go Down Quietly’
- Ask HN: Rails or Django?
- Ruby Books
- Lucas Nussbaum: Helping improve Ruby on Debian and Ubuntu
- Obie Fernandez : Ruby on Rails and more…
- Why teach with Ruby?
- Mislav’s Explain Ruby
- Things That Newcomers to Ruby Should Know
MongoDB — Location Based Sharding, Global View of data
So, in my previous blog I raised a question as follows:
“How do you save your data to the closest data center while still having a global view i.e international customers should have a view of their data no matter where they or their data are and without affecting performance?”
What I should also have noted was that I’ve written the very complex routing code as I’m sure so many out there have as well. So, why would I raise the question if I’ve done this kind of thing before… Well, there may just be another solution (simpler solution) out there that doesn’t involve this complexity that we as developers like to create for ourselves. Now, over the last couple of weeks I’ve been doing some research on MongoDB and have come to like the simplicity that they bring across in their product. Which is why I’m busy writing all the articles under the MongoDB menu on this blog. It’s very much a work in progress, so don’t expect much at this stage, but the idea is that as time goes past I’ll have a complete set of articles with code running under all kinds of circumstances as well as in different languages…
Why am I blogging about some articles that will be coming up? Simple… I do it because I see it as a promise to myself that I must do something and that no matter what, I’ve made the commitment to myself…