Totally doable, the same things you're doing for one version can be
done for two, just:
versions = %w(1.8.7-p330 1.9.2-p136)
versions.each do |version|
# everything
end
:-D
> Thoughts?
>
My things, dunno if are valid:
* Cleanup after uninstall (remove devkit generated files)
* Adjust PATH and instructions around PATHs (Now DevKit is mentioned
to be in the PATH, but is part of devkit installation for gem install
to work)
Well, I can think only on those two things, for sure there are A LOT MORE :D
Cheers,
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
DBI is well, pretty old... ruby-odbc has a crazy versioning: 0.99994
and I believe still haven't integrated the MinGW patches some users of
RubyInstaller made.
AFAIK TinyTDS can't be used as depends on FreeTDS which doesn't have
binaries for Windows... so.
I think a MSSQL adapter, believe there is one using WIN32OLE should be
included to fullfil these needs.
Client to start. I would like to see us release several packages for users to choose from.
Agree, we have that problem with RubyInstaller releases:
http://rubyinstaller.org/downloads
Which version should I download? What is the difference between 1.8
and 1.9? Why do I need to learn all this stuff just to use your
language?
Keep it simple, users will be happier, your life will be easier.
Not sure if I like that or not. I can totally see the advantages, but we also want to make it easy for someone to move off of sqlite3 to MySQL. Would we provide an easy mechanism to get a different adapter/dll, or would they be installing everything again?Client to start. I would like to see us release several packages for users to choose from.
Which version should I download? What is the difference between 1.8
and 1.9? Why do I need to learn all this stuff just to use your
language?
You mean something like this:
http://blog.mmediasys.com/2009/07/06/getting-started-with-rails-and-mysql/
You can't automate mysql installation pretty easily, as the installers
might not be scriptable and it could require administrative
permissions to install the mysql service.
I think since this is an installer for Windows, developers should be able to do the whole process on their native environment. Meaning, if I am on Windows, as a Windows developer, I should be able to use MS SQLServer and deploy to IIS.
I just don't see a Windows .NET developer in the position to write an app on Windows and deploy to Linux with the whole stack to setup. I suppose you could ensure reliable deployment to Heroku at this point.
I think since this is an installer for Windows, developers should be able to do the whole process on their native environment. Meaning, if I am on Windows, as a Windows developer, I should be able to use MS SQLServer and deploy to IIS.
I just don't see a Windows .NET developer in the position to write an app on Windows and deploy to Linux with the whole stack to setup. I suppose you could ensure reliable deployment to Heroku at this point.-Rob Bazinet
I would agree with Rob in this, and also want to flesh out something
about the critics this and RubyInstaller project receive.
There is certain mentality of "You can put a VM with Ubuntu"... but
they are wrong.
What they are pointing with that is:
* You need to manage to install a VM solution in your computer. If
you're a poor developer locked in a corporate environment, pray to IT
get it installed
* You need to learn a bunch of new stuff, like bash, GNONE, how Ubuntu
works, etc. They assume that you know all that stuff.
Is like this picture: http://www.amedias.org/img/java_vs_rails_books.jpg
Been the "Java" pile the one you need to learn.
Think for a second: the user don't know anything about Linux, or want
to, they just want to play with this thing called Rails and be able to
show his boss something.
That is the tip of the iceberg to make any company start looking into
alternatives.
Think for a second what if you don't have Office (or the money to get
it) and someone answered "Oh, you can use OpenOffice, which is for
Linux, but you need to learn this pile of things and drop all your
existing stuff"
Yes, is like that. That is the attitude Windows users get from current
community.
You can't win with that strategy, we need to play guerrilla-way.
Now that I have that out of my system, I believe DB adapters like
MySQL, PostgreSQL and MSSQL should be in the next version and some
research needs to be done to integrate it with IIS.
But that are just my two cents :-D
PS: sorry for the long email.
Right now for me, it's fairly theoretical. I've done a lot of Windows
development, but I'm not actively working on a project that requires
that stack. That being said, maybe it's a good idea for someone with
funds :) to spin up a VM in the cloud that we can all use with those
specs. Obviously that would be a toy sandbox and we need to contact
some people who are actively pushing for this currently on production
environments, add them to the list and help them out.
Aside from the obvious, we also need to target presenting at local
.NET user groups and/or running Code Retreats. I talked to Corey
Haines a lot about attracting that audience at CodeMash for his
CodeRetreats, and it basically boils down to understanding their
problems, presenting solutions and getting cross pollination which
we're lacking to some degree currently.
Thoughts?
Charley Baker
Lead Developer, Watir, http://watir.com
Aside from that next steps will be infiltrating the ruby(and hopefully
.NET and Java) conferences and user groups, there are a lot of CFPs
out now, and I'd love to work you guys or have someone present on the
Windows Rails/Ruby ecosphere. Happy to work with people and love
pairing for confs, there are multiple outside conferences that would
be good to work. Codemash was one that we worked, Codestock is also
coming up and has a CFP.
Cheers,
Charley Baker
Lead Developer, Watir, http://watir.com
Great to see you here!
>> DBI is well, pretty old... ruby-odbc has a crazy versioning: 0.99994
>> and I believe still haven't integrated the MinGW patches some users of
>> RubyInstaller made.
>
> And ruby-odbc needs some "improvement" . It's old C style code with
> functions containing 500+ lines and lots of Gotos I found some bugs and
> tried to fix them with Christian Werner, the maintainer Of ruby-odbc, but
> then I dropped it and moved to Linux and Kens marvelous TinyTDS
Well I would agree there too :) It is why I wrote it. It is tested with every SQL Server data type, from ruby 1.8.6 to 1.9.2 and even JRuby. It is fast and will adapt to the incredible new things in ActiveRecord that Aaron is working on like prepared statements. It is also the only low level transport that properly handles encodings under 1.9 as well.
>> AFAIK TinyTDS can't be used as depends on FreeTDS which doesn't have
>> binaries for Windows... so.
>
> Correct, is it possible to compile FreeTDS on Windows ?
I have seen many users do so on the FreeTDS mailing list and Freddy has been great at applying patches to make that easier. My small amount of research in showed that compiling on Windows was split into two schools, those using Visual Basic / MS Style and those in a simulated POSIX environment. From what I understand of the RailsInstaller is the later method and seems to be the easier route too.
I am really really weak on understanding anything related to compiling on Windows, even when you throw something like MinGW and/or DevKit on there. I just do not get it. If someone could do that leg work and find out how that process would go, I could do the followup work in the TinyTDS project to make it find the needed headers and compile/install for the RailsInstaller.
Here are some things I do know about compiling FreeTDS*. Driver managers like iODBC/unixODBC are moot when using TinyTDS. Libiconv is needed more so when using the :encoding option for establishing connections. If none is there, FreeTDS will use its own internal iconv, but I think it is important to have it and I have only tested full encoding support and different client encoding when compiled with it. Compiling with TDS version is moot, this is a run time setting. Compiling with MSDBLib is moot, this is a run time setting now (which TinyTDS enables at the client level).
* http://www.freetds.org/userguide/config.htm
>> I think a MSSQL adapter, believe there is one using WIN32OLE should be
>> included to fullfil these needs.
>
> Where did you found it?
> What about JDBC ?
To my knowledge, our adapter is the only one that passes all the tests for ActiveRecord and the extended test we have for specific SQL Server features including view support, stored procedures, etc. JDBC is a low level transport mechanism right. Until it is hooked into as a valid connection mode, leveraging the adapter on top of it. I've always stated that I'm completely open to different connection modes. The adapter code had 2 to 3 key places where we allow those hook. I started that abstraction when we put in the ADONET connection mode for IronRuby.
- Ken
Sorry to correct you but MinGW is not POSIX simulated environment,
that is cygwin. MinGW is "Minimal GNU for Windows" and provides GCC to
build native Windows applications.
> I am really really weak on understanding anything related to compiling on Windows, even when you throw something like MinGW and/or DevKit on there. I just do not get it. If someone could do that leg work and find out how that process would go, I could do the followup work in the TinyTDS project to make it find the needed headers and compile/install for the RailsInstaller.
>
DevKit is the RubyInstaller name of a tailored MinGW+MSYS (Minimal
SYStem) package that provides the building blocks to compile Ruby and
it's dependencies and can be used to install gems that require
compilation on Windows.
I haven't tried compile FreeTDS (which is require by TinyTDS) with
MinGW, so can't comment on that front.
As long TinyTDS doesn't do direct socket, assumption of UNIXSocket
style communication or paths, it could work.
> Sorry to correct you but MinGW is not POSIX simulated environment,
> that is cygwin. MinGW is "Minimal GNU for Windows" and provides GCC to
> build native Windows applications.
No, please do!
Did I say I was ignorant on this stuff? I've lost weeks trying to install things on Windows, I so hate it. I was quoted in the local newspaper in 1994 as "not doing Windows". I hate it that much and just do not get it. At least now I wont sound completely dumb :)
>> I am really really weak on understanding anything related to compiling on Windows, even when you throw something like MinGW and/or DevKit on there. I just do not get it. If someone could do that leg work and find out how that process would go, I could do the followup work in the TinyTDS project to make it find the needed headers and compile/install for the RailsInstaller.
>
> DevKit is the RubyInstaller name of a tailored MinGW+MSYS (Minimal
> SYStem) package that provides the building blocks to compile Ruby and
> it's dependencies and can be used to install gems that require
> compilation on Windows.
>
> I haven't tried compile FreeTDS (which is require by TinyTDS) with
> MinGW, so can't comment on that front.
>
> As long TinyTDS doesn't do direct socket, assumption of UNIXSocket
> style communication or paths, it could work.
TinyTDS is really small, and just wraps a small part of the FreeTDS's DBLibrary client. Any direct socket assumption would be done at that layer.
- Ken
I'd like to pick discussion on that back up with this list, and see
what works for people. I'd also suggest we do a one day session on
Ruby and Rails on Windows as well as picking up an extra day with
those people who are committed to making this work - walkthroughs of
the compiler and how to get your projects going on Windows, how to get
involved in Ruby projects - Rubygems, etc as a tester, documenter, and
pushing code, cross compilation and how to push it, etc.
We also need to work on publicizing this to different
communities(Java, .NET) and some people who've been doing this work
silently in the Ruby community and helping to give them a voice. This
is from someone I worked with at CodeMash through Gordon Thiesfield:
“@gordonthiesfeld: Awesome. "it feels awkward going to a Ruby meeting
with a Windows machine" http://bit.ly/hgZ7AW” She's a great voice
who's been working silently on Windows and finds that more challenging
than being a woman in IT.
Thoughts?
Charley Baker
Lead Developer, Watir, http://watir.com
Would there be a way to have only one thing to download, and have the "choices" you can make come during the installation process? I'll explain what I mean. |
Dr. Nic said: "New rails devs don't know one ruby from another." |
And Luis said: "we have that problem with RubyInstaller releases... Which version should I download? What is the difference between 1.8 and 1.9? Why do I need to learn all this stuff just to use your language? |
Keep it simple, users will be happier, your life will be easier." |
Even as an advanced user, there have been times I've gone to some download page and have been overwhelmed by choices. Definitely beginners would feel more overwhelmed. These two comments (from Dr. Nic and Luis) made me think of something I've seen in a lot of Windows installers. This is just an idea in my head - I have no idea about how problematic this would be to implement - but if nothing else maybe it will make someone else have another idea that works all around. Essentially I think of installers being something where if I'm a noob, I'm going to just accept all the default options and I'll be good to go. But if I'm an advanced user, I can choose some different settings if I want to. That way it is both simple for beginners, and configurable for non-beginners. (see attached image, if it comes through correctly. I've never tried attaching an image in an email to a Google Group before). If you choose the custom install, it could be configurable only in that you get to choose different versions of Ruby if you want. But the authors of the installer get to choose what would be easiest for noobs and make that the default. It could go further and let the user choose a version of Rails as well (limited, of course, to versions compatible with the version of Ruby chosen). Then once different databases and drivers are included in the installer, user can choose which database they want. How configurable this becomes could be incremental as the RailsInstaller matures. One final question/point. Rob said "Those devs that know something about Ruby may expect the latest and greatest, then maybe they wouldn't use RailsInstaller any way." Here's a situation where I could see an advanced user still wanting to use the RailsInstaller. Say that developer got a new machine, or new hard drive, Or re-imaged their machine, or whatever. For some reason, they're reinstalling stuff. Presumably they've got an existing rails app, so they wouldn't necessarily need rails or database gems (assuming the use of Bundler, so those would get installed that way). But they would need to re-install Ruby, DevKit and Git at least. It would still be nice to have one place to go to get these things. So, if they use the RailsInstaller and they can customize the install, then the advanced user can choose what version of Ruby they want. And instead of choosing a version of Rails, the advanced user would probably want an option for "none" since they'd already have this in their project. Likewise, they'd want an option for "none" when it comes to databases, for the same reason. I'm sure there's many other Pro's and Con's about this than I can think of. But a few: PRO: * One thing to download, user not overwhelmed with choices at download time. * Default choices, aka the "golden path to success" as Brian put it, are laid out for the person who accepts all defaults. CON: * Since choices are made at install time not download time, then either A) user has to continue to have internet connectivity to complete the install, or B) all combinations of all options have to be included in the download making the download take longer. * Probably a lot more compilcated to implement than I realize. Those are some of my thoughts. Hope it's helpful in some way. Thanks Gayle |
Anyways, the idea of using the Northwind DBs are awesome! Luis, I'm sill very much watching what happens with your FreeTDS work!
- Ken
Brian, out of curiousity, what are the details of your yearly camps?
It sounds exciting.
I did get mostly deployment questions aside from how to work with
MSSQL servers. Integration questions are obviously going to be the
next big hurdles. That's been a point of contention with Watir and
changes to win32ole that we asked for and submitted a patch which was
never integrated. I've also experienced that when working on a J2EE
"enterprise" stack and difficulties with the assorted DB libraries for
Oracle as well as having to recompile the MQ library that's currently
out there, which for better or worse has been mostly dropped with
JRuby's ability to do the same through MQ jars.
IronRuby is interesting and we had Josh Holmes, who's a MS developer
evangelist, come talk about that for a bit. The state of the union is
that it is open source now, has been dropped from MS backing support
obviously which unfortunately was a big loss as they're focussing and
throwing their weight behind PHP instead. :\ The current version is
something like 99% compatible with Ruby 1.8.6. Version 2 is supposed
to have support for 1.9.2, and though Jimmy is still working on it in
his spare time along with a few others, as the magic 8 ball says
"Future is uncertain". I doubt many of us have the resources to jump
on to helping out there.
Perhaps JRuby with C-Extention support and some more work might be the
way to go. I'm not sure.
That's my 2 cents. :)
Charley Baker
Lead Developer, Watir, http://watir.com