From: D Yuniskis on
Hi Joel,

Joel Koltner wrote:
> "Vladimir Vassilevsky" <nospam(a)nowhere.com> wrote in message
> news:2aidnYGi4ZZA3m7WnZ2dnUVZ_oydnZ2d(a)giganews.com...
>> BTW, one can write pretty extensive GUI programs for Windows using
>> pure win32 API calls; the code size will be only few hundred kilobytes
>> or so.
>
> Yeah, Steve Gibson (http://www.grc.com/intro.htm) is into that --
> writing his software in assembly language and calling the GDI API directly.

I think that's indicative of some *other* "problem" :>
Sort of like walking 12 miles to work each day :-/

> Personally I like using somewhat "higher level" GUI toolkits -- I've
> used wxWidgets a couple of times now, and one of its claims to fame is
> that it's no harder to make arbitrarily resizeable windows/dialogs/etc.
> than it is to use the old school fixed-size approach that, e.g., Visual
> BASIC and most of Windows until quite recently is known for. (I can't
> tell you how many times I've been presented with a dialog box that's too
> narrow to show, e.g., the full path & name of a file and desperatiely
> wished I could re-size it, but noooooo...)
>
> I'm also somewhat attracted to its cross-platform nature, given that
> there is some stuff on Linux that I like to mess around with. Why learn
> multiple GUI toolkits when you can just learn one and use it on Macs,
> Windows, and Linux?

You *really* should play with Inferno. I think you will be
amused at what you can do, how quickly you can do it *and*
how "portable" it is. E.g., I run it on a PC, a Sun box and
NetBSD -- next, I will build a "native" (i.e., bare iron)
version.

> Of course the downside of all this is what started this thread --
> incredibly large distributables even for very modest programs. Although
> these days even if you wrote the program in assembly and got it down to,
> say, 10kB, it'd still be invoking many megabytes of DLLs that come with
> Windows, like it or not.

REALLY look at inferno! You can download it (free) and run it
under windows. Unlike all the other bloated applications out
there, this thing fits in *one* place in the file hierarchy
and I think only makes one entry in the registry (the path
to the "inferno root", IIRC). There are some (toy) demos
that you can play with in the release. You can then look
at the sources for those (the sources for EVERYTHING are
there for you to use) and see how insanely trivial everything
is. And, how *small*.

Limbo -- the programming language typically used in Inferno -- is
a bit odd. It will look like C in lots of ways. But, NOT like
C in many others. (Thank Ritchie for that, too!)

It's biggest win (IMO) is how easily you can create distributed
applications. *Without* having to go through all the pain
of writing "servers", marshalling arguments, etc.

I have an application here that has N distributed nodes.
Each node has some combination of barcode readers, displays,
touchpanels, keyboards, printers and scales (as in "you weigh
8.5 stone"). From the user's perspective (which is all that
matters, come the end of the day), you can do anything from
anywhere. I.e., I can print on printer A a weight obtained
from scale B while I am invoking that command from machine C.
And, you can begin a transaction at one place and finish it
at some *other* place (think about how you would do that
writing the app in C or C++!). E.g., I can start typing
something on display A, get called away from this to do
soomething at the other end of the building and finish what
I was typing on display *Z*.

(you would have to see the application to appreciate all the magic
involved :< )

My home automation system (mentioned in one of these threads)
also relies on this ability. So, the "irrigation controller"
can "mount" some portion of the "weather station" in its
namespace and directly access the data "served" by the weather
station AS IF it was available local to the irrigation system.
E.g.,

average_rainfall = (read(./rain/today) + read(./rain/yesterday)) / 2

where /rain/today et al. are values observed and computed by the
"weather station".

Likewise,

write(./zone/1, "ON")

scribbles *in* the "water server" that I need the valve for zone 1
turned on. The water server can watch /zone/* and, if any are
"ON", it can activate the master valve -- until all are "OFF".

(sorry, I am not doing this justice. You really have to understand
the mindset involved in solving problems this way --not the
sort of thing you pick up from a few rants in a newsgroup! :> )
From: Robert Baer on
Joel Koltner wrote:
> "Vladimir Vassilevsky" <nospam(a)nowhere.com> wrote in message
> news:2aidnYGi4ZZA3m7WnZ2dnUVZ_oydnZ2d(a)giganews.com...
>> BTW, one can write pretty extensive GUI programs for Windows using
>> pure win32 API calls; the code size will be only few hundred kilobytes
>> or so.
>
> Yeah, Steve Gibson (http://www.grc.com/intro.htm) is into that --
> writing his software in assembly language and calling the GDI API directly.
>
> Personally I like using somewhat "higher level" GUI toolkits -- I've
> used wxWidgets a couple of times now, and one of its claims to fame is
> that it's no harder to make arbitrarily resizeable windows/dialogs/etc.
> than it is to use the old school fixed-size approach that, e.g., Visual
> BASIC and most of Windows until quite recently is known for. (I can't
> tell you how many times I've been presented with a dialog box that's too
> narrow to show, e.g., the full path & name of a file and desperatiely
> wished I could re-size it, but noooooo...)
>
> I'm also somewhat attracted to its cross-platform nature, given that
> there is some stuff on Linux that I like to mess around with. Why learn
> multiple GUI toolkits when you can just learn one and use it on Macs,
> Windows, and Linux?
>
> Of course the downside of all this is what started this thread --
> incredibly large distributables even for very modest programs. Although
> these days even if you wrote the program in assembly and got it down to,
> say, 10kB, it'd still be invoking many megabytes of DLLs that come with
> Windows, like it or not.
>
> ---Joel
>
So..write your own DLLs to support only what you need; tain't that hard..
From: Joel Koltner on
Hi Didi,

"D Yuniskis" <not.going.to.be(a)seen.com> wrote in message
news:hsvmlu$k95$1(a)speranza.aioe.org...
> You *really* should play with Inferno. I think you will be
> amused at what you can do, how quickly you can do it *and*
> how "portable" it is. E.g., I run it on a PC, a Sun box and
> NetBSD -- next, I will build a "native" (i.e., bare iron)
> version.

This one here--> http://www.vitanuova.com/inferno/index.html ? I'll check it
out; thanks for the idea.

> And, you can begin a transaction at one place and finish it
> at some *other* place (think about how you would do that
> writing the app in C or C++!). E.g., I can start typing
> something on display A, get called away from this to do
> soomething at the other end of the building and finish what
> I was typing on display *Z*.

Sounds pretty slick!

---Joel

From: John Larkin on
On Tue, 18 May 2010 20:50:31 -0500, Vladimir Vassilevsky
<nospam(a)nowhere.com> wrote:

>
>
>D Yuniskis wrote:
>
>> Hi Tim,
>>
>> Tim Williams wrote:
>>
>>> "Joel Koltner" <zapwireDASHgroups(a)yahoo.com> wrote in message
>>> news:2cDIn.136868$pj7.90918(a)en-nntp-15.dc1.easynews.com...
>>>
>>>> It's around 1,500 lines of PowerBASIC code.
>>>>
>>>> John's program compiles to about 61kB.
>>>
>>>
>>> I've got some microcontroller source here, about 3.8kLOC in C, makes
>>> 13,688 bytes object code. Seems like an awful lot, I wonder if I've
>>> accidentially included any libraries I don't want.
>>
>>
>> Play with Inferno sometime. It's *scary* how small the executables
>> are! (of course, the cost of the VM isn't included there!)
>
>The largest program I wrote so far is ~300k of the executable code;
>that's from ~2M sources in C++.
>
>BTW, one can write pretty extensive GUI programs for Windows using pure
>win32 API calls; the code size will be only few hundred kilobytes or so.
>
>VLV

Some of my PBCC utilities (Windows console apps) with basic screen
menus but not official Windows gui stuff, compile to numbers like 32K.
I have a test program for a digital delay generator, full of menus and
RS232/ethernet access to the DUT, that's 44K.

Our pretty extensive material control system is a 400 kbyte EXE, 18K
line source file. The size isn't so important as are the speed and
reliability.

John



From: D Yuniskis on
Hi Joel,

Joel Koltner wrote:
> Hi Didi,

Um, "Don". Didi is someone else! ;-) (Hi Dimiter! :>)

> "D Yuniskis" <not.going.to.be(a)seen.com> wrote in message
> news:hsvmlu$k95$1(a)speranza.aioe.org...
>> You *really* should play with Inferno. I think you will be
>> amused at what you can do, how quickly you can do it *and*
>> how "portable" it is. E.g., I run it on a PC, a Sun box and
>> NetBSD -- next, I will build a "native" (i.e., bare iron)
>> version.
>
> This one here--> http://www.vitanuova.com/inferno/index.html ? I'll
> check it out; thanks for the idea.

Yes. I think the sources are on sourceforge. But, you should
be able to find links there.

>> And, you can begin a transaction at one place and finish it
>> at some *other* place (think about how you would do that
>> writing the app in C or C++!). E.g., I can start typing
>> something on display A, get called away from this to do
>> soomething at the other end of the building and finish what
>> I was typing on display *Z*.
>
> Sounds pretty slick!

I think if you play with it, you'll be amused at what you
can do in such an environment.
First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11 12
Prev: OrCad/ question
Next: Capture hierarchy