From: Ruby Student Date: 2013-06-17T06:05:53+09:00 Subject: Re: Can I use Sinatra to render dynamic pages? --001a11c2cdfec6328a04df4bd700 Content-Type: text/plain; charset=ISO-8859-1 Nick, First, thank you very much for taking the time to shared your thoughts with me. Let me answer your items in order: 1. where do you plan on hosting your application? - A - It will be hosted either on *NIX server, which is extremely reliable and powerful. 2. how reliable does it have to be? - A - It must be VERY reliable. The Dashboard will be watch by all levels of managements and it must be THERE always. 3. how secure does it have to be? - A - Secure. Although we are behind several level of firewalls. 4. how much do you want to learn about Ruby, JavaScript, HTML and CSS3? - A - I love Ruby and I would like to continue learning it. Today, US father's day, I spent over 9 hours already reading about JavaScript and going over tutorials. 5. how much data are you sending per second? It sounds like you have a simple counter with 5 or 6 simple numbers? - A - Less than 50 bytes. Only few numbers that I then interpret and display on the Dashboard. I would love to post something, but other than the Ruby/shoes application, I don't have anything with the new client/server design. Again, thank you for your help. On Sun, Jun 16, 2013 at 2:33 PM, Nicholas Van Weerdenburg < vanweerd@gmail.com> wrote: > Hi, > > First off, I was only writing enthusiastically out of my love of Sinatra, > and only wish to be helpful. > > Stepping back, I would suggest considering two of your goals before making > a concrete recommendation: > 1. hosting- where and how will you host it? > 2. personal goals- what do you want to learn and for what purpose? > > Your app sounds simple enough that anything will suffice so long as you > have your streaming solution. And there enough cut-and-paste code examples > that you could event chose to do so with a client-side JavaScript solution > rather than a server-side one. > > 1. hosting > ========= > If you knew Java already, worked in a J2EE shop, and had J2EE hosting in > place, then Sinatra might be overkill because of the upfront learning and > backend deploying and maintenance effort. Of course that assumes a friendly > IT department- Sinatra or similar running from your desk machine may be the > lowest friction solution, assuming that up-time isn't the a huge > requirement. > > 2- personal goals > ============= > I agree with another responder that learning Sinatra helps learn Rails. > But in my opinion Rails is a lot to learn, and I wouldn't recommend it > unless 1) it's fun for you, and/or 2) aligns with your personal goals. > > > So some questions would be: > 1. where do you plan on hosting your application? > 2. how reliable does it have to be? > 3. how secure does it have to be? > 4. how much do you want to learn about Ruby, JavaScript, HTML and CSS3? > 5. how much data are you sending per second? It sounds like you have a > simple counter with 5 or 6 simple numbers? > > If I were doing this app I would chose the following for maximum > technology hipster fun: > 1. node.js with socket.io > 2. HTML + jQuery and socket.io for the web page. > > But that's mostly silly for the described app, and I do love and highly > recommend Ruby + Sinatra. > > And since you've already done a version in Ruby Shoes, Sinatra sounds like > a good bet. > > I would also suggest learning jQuery for cut-and-paste logic to add to > your HTML. A dirty-little secret of Rails applications is that they usually > contain more JavaScript then Ruby! So if you want to write significant web > applications in the future JavaScript is a must. > > I would suggest creating a pastebin or gist of your code and posting a > link to that. It would be faster to have any further conversation in code. > > Cheers, > Nick > > > > On Sat, Jun 15, 2013 at 12:46 PM, Ruby Student wrote: > >> Nick and everyone else, >> >> Please accept my apologies if I hurt or insulted anyone feeling with my >> blatant and clearly lack of knowledge and understanding. Please let me >> elaborate: >> >> I am an AIX system administrator not a programmer, although back on the >> '70s I was heavily into assembler programming. I am trying to learn Ruby as >> it appears to me kind of much simpler than other languages such as C, Java, >> etc. I like simple and easy tools that can help me do my job more efficient. >> >> My statement about "overkill" WAS NOT INTENDED TO BE FOR *Sinatra*. If >> you go back you'll find that I was talking about *TomCat*. I meant to >> say that perhaps *TomCat* was overkill for the simple thing that I >> wanted to do. I started playing with *Sinatra* and I to find it simple >> and very easy to learn and use. >> >> As I stated on my original post, I want to create a simple web-based >> application, which will be invoked from a browser. >> I will read a file every second. The file contains certain information >> that changes continuously, 24X7 from January 1 to December 31. This >> information collection NEVER stops. >> >> I have NEVER done anything web related, NEVER. Perhaps, due to my lack of >> knowledge, I am not posting my question correctly. >> >> I want: >> >> >> 1. The user to fire up a browser pointing to my server URL >> 2. My application will accept the request and send data to the user's >> browser >> 3. My application will, every second, read the content of the file >> and get the new counters >> 4. Display the new information, counter, on the browser WITHOUT THE >> USER HAVING TO REFRESH IT. In other words, I want to refresh the browser's >> content without user having to do anything. The new information must be >> continuously be updated and displayed. >> >> As I said earlier, I did this using *Ruby/Shoes*, but this needs to be >> used by a number of people and I would have to install Ruby and Shoes every >> desktop that needs to use this Dashboard. >> >> Someone suggested Javascript but I don't want to start learning yet >> another programming tool when I think that Ruby and some web tool such as >> Sinatra might be able to help me with this. *Rails* was also suggested. >> I am probably still not making any sense! >> >> I do want to thank you and others for all the answers already posted and >> perhaps the ones to come. >> >> Ruby Student >> >> >> On Fri, Jun 14, 2013 at 9:01 PM, Nicholas Van Weerdenburg < >> vanweerd@gmail.com> wrote: >> >>> Sinatra is as lightweight and simple a framework you can choose for >>> doing a web app. You can create a complete app in a single file with >>> template included! >>> >>> There is no such thing as Sinatra being overkill for a project. IMHO, >>> the only simpler alternative is using paper, scissors and glue :) >>> >>> I love Sinatra and highly recommend it for anyone learning web >>> development. Give it a shot- it's a fantastic piece work. >>> >>> Did you know that there are dozens, if not more, clones of Sinatra >>> across different languages? >>> >>> And the monster framework for the Node.js, Express, is Sinatra inspired? >>> >>> And as Hassan mentioned, Tomcat is a "servlet" container for Java >>> servlets. Not really related, and far, far more complicated than using Ruby >>> and Sinatra. I almost had post-traumatic stress syndrome flashbacks seeing >>> that word- I haven't use Tomcat in over eight years. >>> >>> Good luck! >>> >>> Cheers, >>> Nick >>> >>> >>> On Fri, Jun 14, 2013 at 9:14 AM, Ruby Student wrote: >>> >>>> Well, I got some good suggestions from everyone here. I thank you all >>>> for that! >>>> Now I just need to analyze each suggestion and pick he easiest for me. >>>> I am not by any mean a mature ruby programmer and I like to do things as >>>> easy and simple as possible. If Sinatra is overkill for what I want, >>>> perhaps I should look into something different. I was wondering if TomCat >>>> might be what I need. Anyway, the entire affair is kind of confusing to me >>>> as this is the first time I deal with this type of thing. >>>> >>>> As I said, I am very grateful to all of you for taking the time to >>>> answer my post. >>>> >>>> >>>> >>>> On Thu, Jun 13, 2013 at 11:55 PM, Nicholas Van Weerdenburg < >>>> vanweerd@gmail.com> wrote: >>>> >>>>> You should be able to do this without JavaScript by using streaming. >>>>> >>>>> Sinatra has a streaming API as of 1.3. Rails 4.0 is adding a "live" >>>>> mode for similar. >>>>> >>>>> However you need to use a supporting web server and hook into the >>>>> event loop (which Rack exposes). >>>>> >>>>> https://gist.github.com/rkh/1476463 offers an example, but note that >>>>> the heroku app is broken (look at the comments for a link to a patched >>>>> version). >>>>> >>>>> Nick >>>>> >>>>> >>>>> On Thu, Jun 13, 2013 at 5:41 PM, Ruby Student wrote: >>>>> >>>>>> Hell Team, >>>>>> >>>>>> I wrote a very simple dashboard using *shoes* which basically >>>>>> displays statistics, every second, of certain type of messages arriving at >>>>>> a queue under *MQ*. But in order for anyone to use it they have to >>>>>> install *Ruby*, *shoes *and its requirements. So I started >>>>>> experimenting with *Sinatra *to re-write my simple application so >>>>>> anyone could point their *browser* and get the dashboard displayed. >>>>>> I went over the first *basic Sinatra* tutorial but everything >>>>>> appears to be static. Is there any example out there that shows * >>>>>> Sinatra* dynamically refreshing the page continuously with new >>>>>> information, in my case message queues information? >>>>>> >>>>>> In other words, once the user successfully get the page displayed, >>>>>> from that point on I want the content to be refreshed dynamically with the >>>>>> new information without user intervention. >>>>>> >>>>>> Thank you >>>>>> >>>>>> -- >>>>>> Ruby Student >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Ruby Student >>>> >>> >>> >> >> >> -- >> Ruby Student >> > > -- Ruby Student --001a11c2cdfec6328a04df4bd700 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Nick,

First, thank you very mu= ch for taking the time to shared your thoughts with me. Let me answer your = items in order:

1. where do you plan on hosting your applicatio= n?
  • A - It will be hosted either on *NIX server, which is extremely rel= iable and powerful.
2. how reliable does it have to= be?
  • A - It must be VERY reliable. The Dashboard will be watch by all levels of managements and it must be TH= ERE always.
3. how secure does it have to be?
  • A - Secur= e. Although we are behind several level of firewalls.
4. how much do you want to learn about Ruby, JavaScript, HTML and CSS3= ?
  • A - I love Ruby and I would like to continue learning it. Tod= ay, US father's day, I spent over 9 hours already reading about JavaScr= ipt and going over tutorials.
5. how much data are you sending per second? It sounds= like you have a simple counter with 5 or 6 simple numbers?
  • A - = Less than 50 bytes. Only few numbers that I then interpret and display on t= he Dashboard.

I would love to post something, but other than the Ruby/shoes app= lication, I don't have anything with the new client/server design.
<= br>
Again, thank you for your help.



On Sun,= Jun 16, 2013 at 2:33 PM, Nicholas Van Weerdenburg <vanweerd@gmail.com> wrote:
Hi,

Firs= t off, I was only writing enthusiastically out of my love of Sinatra, and o= nly wish to be helpful.

Stepping back, I would suggest considering two of your = goals before making a concrete recommendation:
1. hosting- where and how will you host it?
2. personal goal= s- what do you want to learn and for what purpose?

Your app sounds simple enough that anything will suffice so long as you ha= ve your streaming solution. And there enough cut-and-paste code examples th= at you could event chose to do so with a client-side JavaScript solution ra= ther than a server-side one.

1. hosting
=3D=3D=3D=3D=3D=3D=3D=3D=3D
<= div>If you knew Java already, worked in a J2EE shop, and had J2EE hosting i= n place, then Sinatra might be overkill because of the upfront learning and= backend deploying and maintenance effort. Of course that assumes a friendl= y IT department- Sinatra or similar running from your desk machine may be t= he lowest friction solution, assuming that up-time isn't the a huge req= uirement.

2- =A0personal goals
=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D
I agree with another responder that learning Sina= tra helps learn Rails. But in my opinion Rails is a lot to learn, and I wou= ldn't recommend it unless 1) it's fun for you, and/or 2) aligns wit= h your personal goals.


So some questions would be:
1. where do you plan on hosting your application?
2. how reliab= le does it have to be?
3. how secure does it have to be?
4. how much do you want to learn about Ruby, JavaScript, HTML and CSS3= ?=A0
5. how much data are you sending per second? It sounds like = you have a simple counter with 5 or 6 simple numbers?

If I were doing this app I would chose the following for max= imum technology hipster fun:
1. node.js with socket.io
2. HTML + jQuery and socket.io for the web page.=

But that's mostly silly for the described app, and = I do love and highly recommend Ruby + Sinatra.

And= since you've already done a version in Ruby Shoes, Sinatra sounds like= a good bet.

I would also suggest learning jQuery for cut-and-paste = logic to add to your HTML. A dirty-little secret of Rails applications is t= hat they usually contain more JavaScript then Ruby! So if you want to write= significant web applications in the future JavaScript is a must.

I would suggest creating a pastebin or gist of your cod= e and posting a link to that. It would be faster to have any further conver= sation in code.

Cheers,
Nick



On Sat, Jun = 15, 2013 at 12:46 PM, Ruby Student <ruby.student@gmail.com> wrote:
Nick and everyone else,

Please accept my apologies if I hur= t or insulted anyone feeling with my blatant and clearly lack of knowledge = and understanding. Please let me elaborate:

I am an AIX system administrator not a programmer, a= lthough back on the '70s I was heavily into assembler programming. I am= trying to learn Ruby as it appears to me kind of much simpler than other l= anguages such as C, Java, etc. I like simple and easy tools that can help m= e do my job more efficient.

My statement about "overkill" WAS NOT INTENDED TO BE FO= R Sinatra. If you go back you'll find that I was talking about <= b>TomCat. I meant to say that perhaps TomCat was overkill for the simple thing that I wanted to do. I started pla= ying with Sinatra and I to find it simple and very easy to learn and= use.

As I stated on my original post, I want to create a simple web-ba= sed application, which will be invoked from a browser.
I will read= a file every second. The file contains certain information that changes co= ntinuously, 24X7 from January 1 to December 31. This information collection= NEVER stops.

I have NEVER done anything web related, NEVER. Perhaps, due = to my lack of knowledge, I am not posting my question correctly.
<= div>
I want:

  1. The user to fire up a browser poi= nting to my server URL
  2. My application will accept the request and send data to the user's = browser
  3. My application will, every second, read the content of the = file and get the new counters
  4. Display the new information, counter,= on the browser WITHOUT THE USER HAVING TO REFRESH IT. In other words, I wa= nt to refresh the browser's content without user having to do anything.= The new information must be continuously be updated and displayed.
As I said earlier, I did this= using Ruby/Shoes, but this needs to be used by a number of people a= nd I would have to install Ruby and Shoes every desktop that needs to use t= his Dashboard.

Someone suggested Javascript but I don't want to start l= earning yet another programming tool when I think that Ruby and some web to= ol such as Sinatra might be able to help me with this. Rails was als= o suggested. I am probably still not making any sense!

I do want to thank you and others for all the answers alread= y posted and perhaps the ones to come.

Ruby St= udent


On Fri, Jun 14, 2013 at 9:01 PM, Nichola= s Van Weerdenburg <vanweerd@gmail.com> wrote:
Sinatra is as lightweight and simple a framework you can c= hoose for doing a web app. =A0You can create a complete app in a single fil= e with template included!

There is no such thing as Sina= tra being overkill for a project. IMHO, the only simpler alternative is usi= ng paper, scissors and glue :)

I love Sinatra and highly recommend it for anyone learn= ing web development. Give it a shot- it's a fantastic piece work.
=

Did you know that there are dozens, if not more, clones= of Sinatra across different languages?

And the monster framework for the Node.js, Express, is = Sinatra inspired?

And as Hassan mentioned, Tomcat = is a "servlet" container for Java servlets. Not really related, a= nd far, far more complicated than using Ruby and Sinatra. I almost had post= -traumatic stress syndrome flashbacks seeing that word- I haven't use T= omcat in over eight years.

Good luck!

Cheers,
N= ick


On Fri, Jun 14, 2013 at 9:14 AM, Ruby Student <<= a href=3D"mailto:ruby.student@gmail.com" target=3D"_blank">ruby.student@gma= il.com> wrote:
Well, I got some = good suggestions from everyone here. I thank you all for that!
Now= I just need to analyze each suggestion and pick he easiest for me. I am no= t by any mean a mature ruby programmer and I like to do things as easy and = simple as possible. If Sinatra is overkill for what I want, perhaps I shoul= d look into something different. I was wondering if TomCat might be what I = need. Anyway, the entire affair is kind of confusing to me as this is the f= irst time I deal with this type of thing.

As I said, I am very grateful to all of you for taking the time t= o answer my post.


On Thu, Jun 13, 2013 at 11:55 PM, Nicholas Van = Weerdenburg <vanweerd@gmail.com> wrote:
You should be able to = do this without JavaScript by using streaming.

Sin= atra has a streaming API as of 1.3. Rails 4.0 is adding a "live" = mode for similar.

However you need to use a supporting web server and hook into th= e event loop (which Rack exposes).

https://gist.github.com/= rkh/1476463 offers an example, but note that the heroku app is broken (= look at the comments for a link to a patched version).

Nick

On Thu, Jun 13, 2013 at 5:41 PM, Ruby Stu= dent <ruby.student@gmail.com> wrote:
H= ell Team,

I wrote a very simple dashboard using shoes w= hich basically displays statistics, every second, of certain type of messag= es arriving at a queue under MQ. But in order for anyon= e to use it they have to install Ruby, shoes and= its requirements. So I started experimenting with Sinatra to re-wri= te my simple application so anyone could point their browser and get= the dashboard displayed. I went over the first basic Sinatra tutori= al but everything appears to be static. Is there any example out there that= shows Sinatra dynamically refreshing the page continuously with new= information, in my case message queues information?

In other words, once the user successfully get the page disp= layed, from that point on I want the content to be refreshed dynamically wi= th the new information without user intervention.

Thank y= ou

--
Ruby Student
=



--
Ruby Student




--
Ruby Student




--
Ruby Studen= t --001a11c2cdfec6328a04df4bd700--