does Ruby generate WINDOWS and dialog boxes?

K

Ken Laninga

I just heard about Ruby and it looks fascinating. I see lots of code being
discussed but I see no mention of the actual windows and input/output
boxes/windows which it may or may not produce.

Does it make windows?
 
D

David Vallner

--------------enigE48623F108F195BB832F11E6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Ken said:
I just heard about Ruby and it looks fascinating. I see lots of code be= ing=20
discussed but I see no mention of the actual windows and input/output=20
boxes/windows which it may or may not produce.
=20
Does it make windows?
=20

Oi, this might get bloody.

Firstly, not all programming involves graphical user interfaces (windows
/ dialogs; I'll just use GUI onwards).

But, here goes. For Ruby (and most anything that isn't Visual Basic),
GUI is a thing that is handled in a library. (Mostly because Ruby aims
to be a crossplatform language, and trying to handle GUIs crossplatform
is finicky and would probably end in tragedy if tried.)

As far as I'm aware, Ruby doesn't include a GUI library in the standard
library.

However, such libraries are available. I'll audaciously presume your
background to be Windows. In this case, you can either do raw Win32 API
callouts (even if it might be slightly maddening.), which is part of the
standard Windows distribution.

Also, if you're using the One Click Installer (which you should, since
it's by far the Path Least Annoying), you will get both VisualuRuby (a
Windows-only higher-level wrapper around the GUI calls, aims to look
VB-like from the programming point of view in the vruby variant), and
FOX (a synthethic crossplatform toolkit with probably more bells and
whistles than VisualuRuby, but you have to bear with what I consider
ugly-looking results - YMMV).

If those don't work for you, there's always Gtk, so far the only GUI
library I can recall that comes with prebuilt Windows bindings mature
enough I would consider usable outside personal code. Gtk visual quality
and native veracity has improved from a sorry status recently, but is
still lacking in a few areas if you have pet peeves. (Like I do,
specifically non-native file choosers.) I do have hopes for the
wxWidgets binding maturing, and a prebuilt Qt4 one appearing though,
those two toolkits are the ones I prefer - wx for nigh-on-perfect native
veracity, Qt4 for Designer, Linguist, Assistant, and the whole shebang,
and the API style. (Which is very friendly to metaprogramming.) I
currently use the latter from its Python binding (both wx and Qt4 have
well-maintained and uptodate Python bindings), so if you want to get
something done, as opposed to poking around specifically Ruby, you might
try The Other Language.

David Vallner


--------------enigE48623F108F195BB832F11E6
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFhFlAy6MhrS8astoRAnixAJ9xlbabkgQTzYEISptr4rWGY5yqwgCeNWpA
PFrKATVwGdug5m8dn25MB8k=
=TPe2
-----END PGP SIGNATURE-----

--------------enigE48623F108F195BB832F11E6--
 
J

Joel VanderWerf

David Vallner wrote:
...
As far as I'm aware, Ruby doesn't include a GUI library in the standard
library.

Tk is in the standard library. Don't laugh, it can be useful! :)

I'm using the Tk canvas for some easy-to-set-up animations that don't
really need opengl.
 
D

David Vallner

--------------enig2EF2FD09D06ABD8F2DC59685
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Joel said:
David Vallner wrote:
...
=20
Tk is in the standard library. Don't laugh, it can be useful! :)
=20

Wooer. I subconsciously ignore Tk by now. Go me. Or something.
/me puts on a dunce hat.

David Vallner


--------------enig2EF2FD09D06ABD8F2DC59685
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFhHRey6MhrS8astoRApIjAJ9dKeh9b3yeCT3qEm+8ordRVQikkwCeMXCz
L1idQ7d/RlsC8kJQLXbBQuQ=
=Trq+
-----END PGP SIGNATURE-----

--------------enig2EF2FD09D06ABD8F2DC59685--
 
S

Suraj Kurapati

Joel said:
David Vallner wrote:
...

Tk is in the standard library. Don't laugh, it can be useful! :)

I'm using the Tk canvas for some easy-to-set-up animations that don't
really need opengl.

Tk is wonderful! It's really simple to manipulate widgets and graphics
in the way you'd expect. IMHO, Tk is the Ruby of GUI toolkits.

I don't know why people hate it so much. They seem to prefer "desktop
integration" and eye-candy instead of clean, functional interfaces.
Sigh. :-(
 
Z

znmeb

Quoting Suraj Kurapati said:
Tk is wonderful! It's really simple to manipulate widgets and graphics
in the way you'd expect. IMHO, Tk is the Ruby of GUI toolkits.

I don't know why people hate it so much. They seem to prefer "desktop
integration" and eye-candy instead of clean, functional interfaces.
Sigh. :-(
I don't actually *hate* Tk -- I just never learned how to use it, and I think
its widgets are ugly relative to, say, Qt. Now Tcl, on the other hand -- that I
*do* hate. :) It was the first scripting language, but I find Tcl code
virtually unreadable.
 
R

Richard

Ken said:
I just heard about Ruby and it looks fascinating. I see lots of code being
discussed but I see no mention of the actual windows and input/output
boxes/windows which it may or may not produce.

Does it make windows?

--


*************
http://www.sticksite.com/ Ken Laninga

I'm planning to implement desk-top applications the same way I'm
implementing websites: use Ruby on Rails. That gives me essentially
one cross-platform application environment. Is there something wrong
with that plan?
 
D

David Vallner

--------------enig5C3FF082CE123D8834B51403
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
=20
I'm planning to implement desk-top applications the same way I'm
implementing websites: use Ruby on Rails. That gives me essentially
one cross-platform application environment. Is there something wrong
with that plan?

How would that be a desktop application?

Or, in slightly other words, do you have an architecture to go with that
plan?

David Vallner


--------------enig5C3FF082CE123D8834B51403
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFhLmCy6MhrS8astoRAoNBAJ0aWgJ0P6FrBDLBq59xXOi3EuUFGwCfT04j
dD4Yw7YBWnoBuHD7qYDMVec=
=430H
-----END PGP SIGNATURE-----

--------------enig5C3FF082CE123D8834B51403--
 
D

David Vallner

--------------enig4D5DC5759FA280E4AF9D5360
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Suraj said:
I don't know why people hate it so much. They seem to prefer "desktop=20
integration" and eye-candy instead of clean, functional interfaces.=20
Sigh. :-(
=20

Some of us have to "sell" software, at least to managers - then it matter=
s.

[Hide the women, children and livestock. This just got bloody as I
predicted.]

Also, you're missing the point. It's a GUI, noone really gives a damn if
the programmer had an easier time coding it if there's hundreds of users
that will feel constantly alienated by it because of some detail the
programmer didn't feel like bothering with.

User interface design isn't the same as programming a user interface.
Programmers, especially the lazy sort, tend to suck, suck-oh-so-horribly
at user interface design. Approaching user interface design with a
programmer's mindset can only end in pain, tragedy, and Tk.

Also, you're confusing internal UI consistency, and external UI
consistency. Internal UI consistency is when the features of the UI fit
together to make working with the software alone productive (your clean
and functional).

External consistency is when the UI incorporates features that make
working with that software in connection with other software on the
computer productive. This means panels will scroll when the mouse is
over them and won't require clicking on the buttons. This means that the
file chooser, on XP, will have a "My Documents" button as the third one
in a button sidepanel on the left. (I can't describe the rage I feel
when a toolkit opens a file chooser that doesn't even try to look alike
and leaves me flailing about trying to find my way back home.) I've seen
Tk interfaces fail at all the above when they're capabilities the damn
system below them gets right out of the box, and I've no doubt that's
barely the tip of the iceberg.

Both internal and external consistency are, for pretty much most
applications, factors that contribute to productivity. Having an
externally consistent program in no way excludes it being internally
consistent, so no point in setting up that straw man.

Any GUI toolkit will let you achieve internal consistency, and getting
really good usability from a GUI is 1% toolkit choice, 99% blood and
sweat. (My favourite GUI programs in terms of UI usability, and
consequently the ones I use most are firstly Opera, written in nothing
publically known for Windows, Qt3 for Linux, and IntelliJ IDEA, based on
the by-default-horrid Swing it makes sing and dance.) However, the
mindset of most Tk users seems to be to fight achieving external
consistency kicking and screaming and inventing nonarguments to prove
such patent nonsense as external consistence being undesirable. (That's
usually laziness, youthful zealotry, incompetence, or short time budget
speaking. Prove me wrong.)

Also, to set you right. People, or at least I (the only part of "people"
I can confidently speak for - for what part were you speaking and with
how much confidence when you used the words "people" and "they" again? -
obviously not yourself), don't just prefer eye candy. I want usable
interfaces that do what I need, do what I want, and do even what I
didn't know I wanted, and pay close attention now, that *also* look
good, look native-or-better (Java 6 giving me subpixel font AA on
Windows 2000 machines at work or under uncooperative Linux window
managers), act native-or-better (cf. some Windows programs that emulate
"scroll widget under cursor"). Both. And. No. Less. I am willing to and
have paid money to get that, and when forced to make a choice, there
will be something pissing me off with either alternative making me
wrestle lossage of some sort.

(PS: Just writing desktop integration in quotes doesn't make it of no
value. Refer to the missing the point by leagues bit above.)

Oh, and to make my position fully clear, I do hate Tk as a programmer
too. I find Qt linearly superior because of the object-oriented design,
MVC support, and the mixin architecture for separating UI and controller
logic, and QMetaObject::connectSlotsByName very reliably killing event
handler wireup boilerplate. And who really cares how you lay out the
widgets when there's Designer (the form designer that made me stop
hating form designers) to do that. Oh, and even with those features,
it's probably faster than Tk.

Tk isn't hardly the Ruby of GUI toolkits, with the massive advocating of
/ tolerance to mediocrity of results, it's the PHP of GUI toolkits.

David Vallner
No Way Someone Reads This Whole


--------------enig4D5DC5759FA280E4AF9D5360
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFhL/Sy6MhrS8astoRAlcVAJ4gETBdB1lbX0HZoJHeiGf1VBXBAwCeP7yI
5vJoWH1F1CMhpSbf5MpveOo=
=hSWK
-----END PGP SIGNATURE-----

--------------enig4D5DC5759FA280E4AF9D5360--
 
M

Michael T. Richter

--=-yRz+JywQmeWqMZUhWscP
Content-Type: multipart/alternative; boundary="=-upgNiKQMX5SF5dIeV02l"


--=-upgNiKQMX5SF5dIeV02l
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

No Way Someone Reads This Whole



I did. And applauded most of the way through it. Programmers have a
very annoying habit of not only disregarding the end-users but, indeed,
actively sneering at them. This is why software sucks almost, but not
quite, universally.

--=20
Michael T. Richter
Email: (e-mail address removed), (e-mail address removed)
MSN: (e-mail address removed), (e-mail address removed); YIM:
michael_richter_1966; AIM: YanJiahua1966; ICQ: 241960658; Jabber:
(e-mail address removed)

"My paramount object in this struggle is to save the Union, and is not
either to save or to destroy slavery." --Abraham Lincoln

--=-upgNiKQMX5SF5dIeV02l
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; CHARSET=3DUTF-8">
<META NAME=3D"GENERATOR" CONTENT=3D"GtkHTML/3.10.3">
</HEAD>
<BODY>
On Sun, 2006-17-12 at 12:56 +0900, David Vallner wrote:<BR>
<BR>
<BLOCKQUOTE TYPE=3DCITE>
<PRE>
<FONT COLOR=3D"#000000">No Way Someone Reads This Whole</FONT>
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
I did.&nbsp; And applauded most of the way through it.&nbsp; Programmers ha=
ve a very annoying habit of not only disregarding the end-users but, indeed=
, actively sneering at them.&nbsp; This is why software sucks almost, but n=
ot quite, universally.<BR>
<BR>
<TABLE CELLSPACING=3D"0" CELLPADDING=3D"0" WIDTH=3D"100%">
<TR>
<TD>
--&nbsp;<BR>
<B>Michael T. Richter</B><BR>
<I><FONT SIZE=3D"2">Email:</FONT></I><FONT SIZE=3D"2"> (e-mail address removed)=
, (e-mail address removed)</FONT><BR>
<I><FONT SIZE=3D"2">MSN:</FONT></I><FONT SIZE=3D"2"> (e-mail address removed)=
, (e-mail address removed); </FONT><I><FONT SIZE=3D"2">YIM:</FONT></I><FONT SIZE=
=3D"2"> michael_richter_1966; </FONT><I><FONT SIZE=3D"2">AIM:</FONT></I><FO=
NT SIZE=3D"2"> YanJiahua1966; </FONT><I><FONT SIZE=3D"2">ICQ:</FONT></I><FO=
NT SIZE=3D"2"> 241960658; </FONT><I><FONT SIZE=3D"2">Jabber:</FONT></I><FON=
T SIZE=3D"2"> (e-mail address removed)</FONT><BR>
<BR>
<I><FONT SIZE=3D"1">&quot;My paramount object in this struggle is to save t=
he Union, and is not either to save or to destroy slavery.&quot;</FONT></I>=
<FONT SIZE=3D"1"> </FONT><B><FONT SIZE=3D"1">--Abraham Lincoln</FONT></B>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

--=-upgNiKQMX5SF5dIeV02l--

--=-yRz+JywQmeWqMZUhWscP
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQBFhMM+LqyWkKVQ54QRAkhSAJsGfs+Rf77ARqboLKOgpqw1DBfzBACdFoV1
55Xn2SF6jdjecPlTBDqAXoQ=
=4snG
-----END PGP SIGNATURE-----

--=-yRz+JywQmeWqMZUhWscP--
 
R

Richard

David said:
How would that be a desktop application?

To us programmers it would be a web app with a local server, but to
the user it would be indistinguishable from, say, an application built
with Visual C++ and Microsoft Foundation Classes running on a Windows
OS.

Does that make sense to you?
 
M

Michael T. Richter

--=-0SbSarC5INbBXZUXsRqb
Content-Type: multipart/alternative; boundary="=-nINVwmD5IfzigxMzxiyX"


--=-nINVwmD5IfzigxMzxiyX
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Tk is wonderful! It's really simple to manipulate widgets and graphics=20
in the way you'd expect. IMHO, Tk is the Ruby of GUI toolkits.



I'm with David here. Tk isn't the Ruby of GUI toolkits. But I diverge
sharply from him after that. He says it's the PHP of GUI toolkits. I
say it's the GWBASIC of them.

Tk-based GUIs are typically so fscking useless that I'd rather use the
CLI and ed over an app coded in Tk.

I don't know why people hate it so much. They seem to prefer "desktop=20
integration" and eye-candy instead of clean, functional interfaces.=20
Sigh. :-(


You may want to do some reading before you embarrass yourself further.
Start with The Rise of Worse is Better
(http://www.jwz.org/doc/worse-is-better.html). Then pick up a book on
good UI design. Almost any book written on the topic in, say, the past
20 years will open your eyes to just how much effort and thought goes
into a good user interface, GUI or otherwise. (Here's a hint: the vast
majority of user interfaces suck bowling balls through garden hoses.)

--=20
Michael T. Richter
Email: (e-mail address removed), (e-mail address removed)
MSN: (e-mail address removed), (e-mail address removed); YIM:
michael_richter_1966; AIM: YanJiahua1966; ICQ: 241960658; Jabber:
(e-mail address removed)

"My paramount object in this struggle is to save the Union, and is not
either to save or to destroy slavery." --Abraham Lincoln

--=-nINVwmD5IfzigxMzxiyX
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; CHARSET=3DUTF-8">
<META NAME=3D"GENERATOR" CONTENT=3D"GtkHTML/3.10.3">
</HEAD>
<BODY>
On Sun, 2006-17-12 at 10:09 +0900, Suraj Kurapati wrote:
<BLOCKQUOTE TYPE=3DCITE>
<PRE>
<FONT COLOR=3D"#000000">Tk is wonderful! It's really simple to manipulate w=
idgets and graphics </FONT>
<FONT COLOR=3D"#000000">in the way you'd expect. IMHO, Tk is the Ruby of GU=
I toolkits.</FONT>
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
I'm with David here.&nbsp; Tk isn't the Ruby of GUI toolkits.&nbsp; But I d=
iverge sharply from him after that.&nbsp; He says it's the PHP of GUI toolk=
its.&nbsp; I say it's the GWBASIC of them.<BR>
<BR>
Tk-based GUIs are typically so fscking useless that I'd rather use the CLI =
and ed over an app coded in Tk.<BR>
<BR>
<BLOCKQUOTE TYPE=3DCITE>
<PRE>
<FONT COLOR=3D"#000000">I don't know why people hate it so much. They seem =
to prefer &quot;desktop </FONT>
<FONT COLOR=3D"#000000">integration&quot; and eye-candy instead of clean, f=
unctional interfaces. </FONT>
<FONT COLOR=3D"#000000">Sigh. :-(</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
You may want to do some reading before you embarrass yourself further.&nbsp=
; Start with <A HREF=3D"http://www.jwz.org/doc/worse-is-better.html">The Ri=
se of Worse is Better (</A><A HREF=3D"http://www.jwz.org/doc/worse-is-bette=
r.html).">http://www.jwz.org/doc/worse-is-better.html).</A>&nbsp; Then pick=
up a book on good UI design.&nbsp; Almost any book written on the topic in=
, say, the past 20 years will open your eyes to just how much effort and th=
ought goes into a good user interface, GUI or otherwise.&nbsp; (Here's a hi=
nt: the vast majority of user interfaces suck bowling balls through garden =
hoses.)<BR>
<BR>
<TABLE CELLSPACING=3D"0" CELLPADDING=3D"0" WIDTH=3D"100%">
<TR>
<TD>
--&nbsp;<BR>
<B>Michael T. Richter</B><BR>
<I><FONT SIZE=3D"2">Email:</FONT></I><FONT SIZE=3D"2"> (e-mail address removed)=
, (e-mail address removed)</FONT><BR>
<I><FONT SIZE=3D"2">MSN:</FONT></I><FONT SIZE=3D"2"> (e-mail address removed)=
, (e-mail address removed); </FONT><I><FONT SIZE=3D"2">YIM:</FONT></I><FONT SIZE=
=3D"2"> michael_richter_1966; </FONT><I><FONT SIZE=3D"2">AIM:</FONT></I><FO=
NT SIZE=3D"2"> YanJiahua1966; </FONT><I><FONT SIZE=3D"2">ICQ:</FONT></I><FO=
NT SIZE=3D"2"> 241960658; </FONT><I><FONT SIZE=3D"2">Jabber:</FONT></I><FON=
T SIZE=3D"2"> (e-mail address removed)</FONT><BR>
<BR>
<I><FONT SIZE=3D"1">&quot;My paramount object in this struggle is to save t=
he Union, and is not either to save or to destroy slavery.&quot;</FONT></I>=
<FONT SIZE=3D"1"> </FONT><B><FONT SIZE=3D"1">--Abraham Lincoln</FONT></B>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

--=-nINVwmD5IfzigxMzxiyX--

--=-0SbSarC5INbBXZUXsRqb
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQBFhM3uLqyWkKVQ54QRAs8qAJ4ujJWA5Nv6DsqPo4CImv3yuwgp8ACgqvD6
4fI87PnphR21FoMN+VDXdhk=
=Vt5H
-----END PGP SIGNATURE-----

--=-0SbSarC5INbBXZUXsRqb--
 
S

Suraj Kurapati

David said:
Some of us have to "sell" software, at least to managers - then it
matters.

Bingo! That's where we differ. I don't sell software so I haven't had to
deal with market pressures and bosses and customers, etc. Thus, my claim
might have more merit when viewed in the interest of programmer
productivity/laziness.
Also, you're missing the point. It's a GUI, noone really gives a damn if
the programmer had an easier time coding it if there's hundreds of users
that will feel constantly alienated by it because of some detail the
programmer didn't feel like bothering with.

Alas, what a world we live in. The same goes for movies where the stars
and director get a substantial chunk of the publicity/credit while the
back-end sound engineer is largely ignored.

[...]
Approaching user interface design with a
programmer's mindset can only end in pain, tragedy, and Tk.

LOL good one. :)
Also, you're confusing internal UI consistency, and external UI
consistency. Internal UI consistency is when the features of the UI fit
together to make working with the software alone productive (your clean
and functional).
Interesting.

External consistency is when the UI incorporates features that make
working with that software in connection with other software on the
computer productive. This means panels will scroll when the mouse is
over them and won't require clicking on the buttons. This means that the
file chooser, on XP, will have a "My Documents" button as the third one
in a button sidepanel on the left.

I don't use windows, so I'm quite satisfied with Tk's horrendous
appearance and its lack of integration with "My documents".
Nevertheless, I can understand your point of view and I do sympathize.

[...]
However, the
mindset of most Tk users seems to be to fight achieving external
consistency kicking and screaming and inventing nonarguments to prove
such patent nonsense as external consistence being undesirable.
(That's usually laziness, youthful zealotry,

Alright, you've caught me there :)
Also, to set you right. People, or at least I (the only part of "people"
I can confidently speak for - for what part were you speaking and with
how much confidence when you used the words "people" and "they" again? -
obviously not yourself)

I do so with the confidence of uncertainty (probability = 0.5). When one
does not know the world, one naturally assumes the world is like one's
self. Alas, I am but a frog in a well.

[...]
David Vallner
No Way Someone Reads This Whole

Thanks for the lesson.
 
S

Suraj Kurapati

Michael said:
I'm with David here. Tk isn't the Ruby of GUI toolkits. But I diverge
sharply from him after that. He says it's the PHP of GUI toolkits. I
say it's the GWBASIC of them.

Tk-based GUIs are typically so fscking useless that I'd rather use the
CLI and ed over an app coded in Tk.




You may want to do some reading before you embarrass yourself further.

Why should I fear embarrassing or otherwise making an ass out of myself?
Such fear would prevent me from learning and keep me ignorant forever.
Start with The Rise of Worse is Better
(http://www.jwz.org/doc/worse-is-better.html). Then pick up a book on
good UI design. Almost any book written on the topic in, say, the past
20 years will open your eyes to just how much effort and thought goes
into a good user interface, GUI or otherwise. (Here's a hint: the vast
majority of user interfaces suck bowling balls through garden hoses.)

Thanks for the link and suggestions.
 
M

Michael T. Richter

--=-rQd3HoYf7k1MfI1baXt6
Content-Type: multipart/alternative; boundary="=-eBN2wlHtx7PkiX8obWks"


--=-eBN2wlHtx7PkiX8obWks
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Why should I fear embarrassing or otherwise making an ass out of myself?=20
Such fear would prevent me from learning and keep me ignorant forever.


That is both an interesting and a refreshing attitude. However there is
a key word you missed above: "further".

Being afraid of initial embarrassment is silly. Mistakes are a part of
life and ignorance is the default condition. (I'd even, in my more
cynical moments, extend "ignorance" to "stupidity" in the previous
sentence -- yes, self included.) What you should be afraid of is
repeated embarrassment: embarrassment on the same (or similar) points.

Being initially embarrassed is a sign of learning. Being further
embarrassed on the same topic is a sign of not learning. See what I
mean?

Thanks for the link and suggestions.



Thanks for the refreshing outlook. Usually people who talk about how
"tool <foo> is great and people who don't like it Just Don't Get It"
aren't so open-minded. If you want to take this off-list, I might even
be able to direct you to some decent books on HUI design (or at least
some web pages with decent information).

--=20
Michael T. Richter
Email: (e-mail address removed), (e-mail address removed)
MSN: (e-mail address removed), (e-mail address removed); YIM:
michael_richter_1966; AIM: YanJiahua1966; ICQ: 241960658; Jabber:
(e-mail address removed)

"[Blacks] ... are inferior to the whites in the endowments both of body
and mind." --Thomas Jefferson

--=-eBN2wlHtx7PkiX8obWks
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; CHARSET=3DUTF-8">
<META NAME=3D"GENERATOR" CONTENT=3D"GtkHTML/3.10.3">
</HEAD>
<BODY>
On Sun, 2006-17-12 at 14:16 +0900, Suraj Kurapati wrote:
<BLOCKQUOTE TYPE=3DCITE>
<PRE>
<FONT COLOR=3D"#000000">&gt; You may want to do some reading before you emb=
arrass yourself further.</FONT>
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
<BLOCKQUOTE TYPE=3DCITE>
<PRE>
<FONT COLOR=3D"#000000">Why should I fear embarrassing or otherwise making =
an ass out of myself? </FONT>
<FONT COLOR=3D"#000000">Such fear would prevent me from learning and keep m=
e ignorant forever.</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
That is both an interesting and a refreshing attitude.&nbsp; However there =
is a key word you missed above: &quot;further&quot;.<BR>
<BR>
Being afraid of initial embarrassment is silly.&nbsp; Mistakes are a part o=
f life and ignorance is the default condition.&nbsp; (I'd even, in my more =
cynical moments, extend &quot;ignorance&quot; to &quot;stupidity&quot; in t=
he previous sentence -- yes, self included.)&nbsp; What you should be afrai=
d of is <B>repeated</B> embarrassment: embarrassment on the same (or simila=
r) points.<BR>
<BR>
Being initially embarrassed is a sign of learning.&nbsp; Being further emba=
rrassed on the same topic is a sign of not learning.&nbsp; See what I mean?=
<BR>
<BR>
<BLOCKQUOTE TYPE=3DCITE>
<PRE>
<FONT COLOR=3D"#000000">&gt; Start with The Rise of Worse is Better</FONT>
<FONT COLOR=3D"#000000">&gt; (<A HREF=3D"http://www.jwz.org/doc/worse-is-be=
tter.html">http://www.jwz.org/doc/worse-is-better.html</A>). Then pick up =
a book on</FONT>
<FONT COLOR=3D"#000000">&gt; good UI design. Almost any book written on th=
e topic in, say, the past</FONT>
<FONT COLOR=3D"#000000">&gt; 20 years will open your eyes to just how much =
effort and thought goes</FONT>
<FONT COLOR=3D"#000000">&gt; into a good user interface, GUI or otherwise. =
(Here's a hint: the vast</FONT>
<FONT COLOR=3D"#000000">&gt; majority of user interfaces suck bowling balls=
through garden hoses.)</FONT>
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
<BLOCKQUOTE TYPE=3DCITE>
<PRE>
<FONT COLOR=3D"#000000">Thanks for the link and suggestions.</FONT>
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
Thanks for the refreshing outlook.&nbsp; Usually people who talk about how =
&quot;tool &lt;foo&gt; is great and people who don't like it Just Don't Get=
It&quot; aren't so open-minded.&nbsp; If you want to take this off-list, I=
might even be able to direct you to some decent books on HUI design (or at=
least some web pages with decent information).<BR>
<BR>
<TABLE CELLSPACING=3D"0" CELLPADDING=3D"0" WIDTH=3D"100%">
<TR>
<TD>
--&nbsp;<BR>
<B>Michael T. Richter</B><BR>
<I><FONT SIZE=3D"2">Email:</FONT></I><FONT SIZE=3D"2"> (e-mail address removed)=
, (e-mail address removed)</FONT><BR>
<I><FONT SIZE=3D"2">MSN:</FONT></I><FONT SIZE=3D"2"> (e-mail address removed)=
, (e-mail address removed); </FONT><I><FONT SIZE=3D"2">YIM:</FONT></I><FONT SIZE=
=3D"2"> michael_richter_1966; </FONT><I><FONT SIZE=3D"2">AIM:</FONT></I><FO=
NT SIZE=3D"2"> YanJiahua1966; </FONT><I><FONT SIZE=3D"2">ICQ:</FONT></I><FO=
NT SIZE=3D"2"> 241960658; </FONT><I><FONT SIZE=3D"2">Jabber:</FONT></I><FON=
T SIZE=3D"2"> (e-mail address removed)</FONT><BR>
<BR>
<FONT SIZE=3D"1">--Thomas Jefferson</FONT></B>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

--=-eBN2wlHtx7PkiX8obWks--

--=-rQd3HoYf7k1MfI1baXt6
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQBFhNjoLqyWkKVQ54QRAkLqAKCJk3Npb7jMClyIdD0Zlm1Ivv2Q0QCgtUO5
u8LAclfibUHreoMFo6kov/4=
=57od
-----END PGP SIGNATURE-----

--=-rQd3HoYf7k1MfI1baXt6--
 
J

James Britt

Suraj said:
Bingo! That's where we differ. I don't sell software so I haven't had to
deal with market pressures and bosses and customers, etc. Thus, my claim
might have more merit when viewed in the interest of programmer
productivity/laziness.

I write most of my software for myself, and I'm fantastically lazy (to
point of borderline clinical death), but I'm with David. Tk hurts my
eyes. It annoys me in subtle ways that, over time, crawl under my skin
and gnaw at my tendons and bones. Ow!


Looks matter.
 
S

Suraj Kurapati

Michael said:
Being initially embarrassed is a sign of learning. Being further
embarrassed on the same topic is a sign of not learning. See what I
mean?
Understood.

I strive to be in the worse-is-better camp. :)

Agreed. I'm familiar with a bit of Jakob Nielsen's work and Marc
Rettig's wonderful "paper prototyping" technique -- but that's about it.
If you want to take this off-list, I might even
be able to direct you to some decent books on HUI design (or at least
some web pages with decent information).

If you don't mind, please post the web resources here, so that we may
all benefit from your guidance.

Thanks for your consideration.
 
D

David Vallner

--------------enig788C29770EF2BEA401EF864D
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Jason said:
This caught my eye: http://vruby.sourceforge.net/sample/traytest.rb
It adds a system tray icon, modifies one, deletes the one created, amon= g
other things. There's a comment in there about the added task tray ico= n
not
automagically deleting itself upon the window closing. What I'm uncert= ain
of, is how to go about fixing that. Some of the other programs I was a= ble
to make minor changes too in order to make it look how I wanted, but th= is
problem eludes me. Can anyone suggest a way to modify the program in o= rder
to automagically check for task bar icons before closing the program?

Trap SIGINT in the UI setup? The closure should make this fairly
automagical if you don't mind the memory leak.

Also, no idea about vruby, but some other GUI toolkits I worked with
provide a window close hook. Search through the documentation for some
sort of "on close" event to handle on the main application window?
(Where you'd likely keep a reference to the tray icon.)

David Vallner


--------------enig788C29770EF2BEA401EF864D
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFhsxny6MhrS8astoRAqncAJoDqlL8B5sILQuTNMqFa1h2eZlVHwCfS0OH
09EnWgkI0+5koyQgNx2XXPo=
=LP2k
-----END PGP SIGNATURE-----

--------------enig788C29770EF2BEA401EF864D--
 
D

David Vallner

--------------enigD81D63FDE0560765E9B7AD5F
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Suraj said:
If I understand correctly:
=20

No ;P The database is shared between the users, only the webserver runs
locally.

David Vallner


--------------enigD81D63FDE0560765E9B7AD5F
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFhtgoy6MhrS8astoRAse5AJ90egxHqzhg7GVdx6YbUeT+ilt1WwCePguy
AY7yVJsOJc5F3BQT31Homys=
=W8Ly
-----END PGP SIGNATURE-----

--------------enigD81D63FDE0560765E9B7AD5F--
 
D

David Vallner

--------------enigF84D23D031060A235C56E769
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
The app structure I outlined, Firefox+Ruby+Rails+WEBrick+MySQL, all
runs on the client's machine (except for the database server). The
user machine(s) need not be connected to the Internet, though it/they
needs a LAN connection to a database server. So everything except the
data-store is "client-side". Do you agree?
=20

Yes. However, there's still the HTTP request divisor in the middle, with
no / hacked push in the WEBrick -> Firefox direction. At least as far as
I know, prototype.js, the Javascript library Rails uses for Ajax
support, doesn't try to support any form of pub/sub messaging or
anything close to sane event support in the push direction. Of course,
it might be possible your application only needs to pull data.
Secondly, the kind of apps I've worked on (and plan to continue working=
on) all need robust user interfaces. Raw HTML is no doubt inferior to,=
say, Microsoft's MFC or Java's Swing. However, Rails code is run
through Extended Ruby (erb) which programmatically generates repetitive=
HTML, so it's pretty nice to use even absent a drag-n-drop GUI
builder.
=20

I don't actually find Swing superior to setup a UI, HTML, while flawed,
mirrors the UI layout in its structure, which is a good thing. However,
for me that is offset by having fine-grained data binding - for complex
UIs, it rubs me in a better way than bending my code to be essentially
request / (partial) response.
=20
Rails is based on Ruby. Ruby is based on C. And C is widely viewed as=
a hardware abstraction layer. So that stuff is already ported anywhere=
I'm likely to want to go.
=20

I didn't mean work in the first place. I meant keeping an up-to-date
version on all the users' machines. Last time there was a thread on the
subject of distributing whole applications with rubygems, I think there
were quite a few gotchas mentioned. But you might want to search the
archives for that to see if the approach is viable / what you'd have to
work around.
=20
It implements an MVC architecture in a very neat way. The model
house/enforces the business logic. The views present data from the
models to the client, and pass back client actions as appropriate. The
controllers oversee the traffic between those layers. I haven't done
much of this yet, so it remains for me to see how well that works.
=20

No / weak / coarse-grained push from the model to the view would be a
showstopper for me for the sort of problems where'd I use a rich GUI.
=20
That's a good point to consider. What sort of idiosynchrasies might
adversely affect this scheme, noting that we're planning for apps on
isolated machines (except for the dataset connection)?
=20

Nothing that's really a showstopper from this point of view, just the
request / response / sessions clutter that's not really essential to the
way I would model a rich GUI application. For me, it would involve
working around those, maybe you have an architectyre / model in mind
where the mapping is straightforward.
=20
Isn't that true regardless of the language?
=20

Not on a quantitative level. Easily accessible metaprogramming
facilities are a potential complexity explosion, and need competence and
/ or restraint to avoid abstraction leak between modules. (For example
introducing a method to a class at a scope where it clutters in modules
that probably won't use the functionality "because it's convenient that
way".)
=20
If you use Active Record Migration, the SQL database schema would
always be in synch, wouldn't it? And don't you value that Rails
automatically maintains a history of migrations so you can easily back
up to an earlier version if necessary; likewise for matching back up
with the program code so long as version control, e.g. Subversion that
Rubyists like.
=20

If creating a database schema from scratch, unless you hit some of the
more obscure deficiencies of AR (2PC and the like), in your scenario
it's probably fine.

While migrations are indeed sexy, using them means you pretty much
eschew the magic of AR, at which point it becomes only incrementally
more convenient as an ORM solution rather than revolutionary.
An important service Rails provides, and that I love, is in generating
single and two-way linkages for one-to-many and many-to-many
relationships with one-liners and simple column-name standards for
keys.

This I consider unforgivable brain-damage, AR should have supported
database metadata investigation and looking at foreign key constraints
out of the box. Same goes for migrations-generated schemas (I haven't
really seen those, I admit.).
=20
I've been using ver. 5 and the schemas Rails generates from migrations
seem OK to me. I particularly like the fact that this version supports=
transactions .. IMHO a "must" for app relying on database support.
=20

And only decades after all the competition. Currently, I don't see much
of a reason why not to use MySQL in a general scenario (before
concurrency handling considerations and load tests come into play),
however I also don't see much of a reason to do so - I'll stay with
religious opinions and stick to the featurefullness of Postgres.

David Vallner


--------------enigF84D23D031060A235C56E769
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD4DBQFFhuA9y6MhrS8astoRAjarAJ9PyzTvTaOVLI+PIsuvA2YQrFy6ggCXcDYC
Ux7Zd76b9RTrm95gjCVCfw==
=m9jl
-----END PGP SIGNATURE-----

--------------enigF84D23D031060A235C56E769--
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top