• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp4382
r3wp44224
total:48606

results window for this page: [start: 8201 end: 8300]

world-name: r3wp

Group: Tech News ... Interesting technology [web-public]
[unknown: 10]:
23-Feb-2006
http://pages.google.comgoogle just launched a new beta... They are 
gooing and going faster faster...
Volker:
23-Feb-2006
Maybe MS learned from Carl and now the beta is the more stable version? 
just thinking..
Alan:
23-Feb-2006
using 7 beta here also and seems ok but I still use Firefox for most 
of my surfing.IE 7 seems to have "borrowed" several ideas from Firefox 
but that's nothing new
Alan:
24-Feb-2006
got a pc and want to run OSX on it ? try this then :   http://maxxuss.konglish.org/
[unknown: 10]:
24-Feb-2006
http://www.ubrowser.com/and 3d browsing ;-)
Ashley:
28-Feb-2006
Hope they can deliver on this: "Vista will include a built-in speech 
recognition engine, and new and improved speech synthesis. Assuming 
it works as well as it should, you'll be able to dictate emails or 
give voice commands for web navigations without buying additional 
speech recognition software."
Ashley:
1-Mar-2006
Internet Explorer 7 under Windows Vista runs in a special super-low 
user access mode that gives the browser very little access to the 
underlying OS, and ActiveX security has been tightened up significantly 
as well, with most ActiveX controls off by default and set to opt-in 
rather than opt-out. Hopefully other browsers will follow suit and 
operate in this least-privileged mode, too.
 - Like IE is a model of good security practices!?
Gabriele:
1-Mar-2006
Why Windows Vista Won't Suck - maybe because the author of the article 
has been paid by MS? ;) I'll believe this when I see it (but even 
in that case, MS is evil and must be fighted)
Terry:
1-Mar-2006
Well lets see. according to yahoo, Microsoft has revenues of $41 
billion, a 31% profit margin, total cash of $34 billion, a $15 billion 
operating cash flow, and a market cap of $277.66 Billion.

Thats BILLION as in $1000 million.

But hey, what do they know?
Gabriele:
1-Mar-2006
i wonder if the fact that MS is that rich means that ms-dos doesn't 
suck either, and that windows 95 doesn't suck and so on.
Alan:
1-Mar-2006
I will be going by Redwood Valley on Saturday and give Carl a "reboot" 
:)
Allen:
1-Mar-2006
Terry, I think computing is mature enough to have machines for different 
purposes, games machines, media machines and work machines. Most 
households I know have a least two on that list so far and are heading 
for the 3rd. Currently the pendulum is swinging away from "one machine 
to rule them all".
Allen:
1-Mar-2006
Economic tides may turn that back again, and cut the diversity again 
like it did in the late eighties / early nineties. But
Sunanda:
1-Mar-2006
I've been telling people foy years to get a machine for work and 
a machine to trash for games etc.

Because if they call me (as they often do) and say "I've broken my 
only computer by downloading a game and now I can't get it to work 
and I've got to do something important" they get zero sympathy and 
I'm pretty dis-inclined to lend a hand in fixing their crisis.
Sunanda:
1-Mar-2006
Strange isn't it?

Most people wouldn't dream of pimping their plumbing or their car.....They 
just know that those things need to work, and messing around with 
them will lead to breakages.
But they'll mess with their only computer day and night.
Anton:
2-Mar-2006
I'm guilty. But I think below a certain threshold, people tend to 
spend all their available money on the one computer, in order to 
make it as good as possible. That's my reasoning from years ago. 
These days, I feel quite different. I don't feel like playing games 
much anymore and I'm pretty careful installing new software.
Terry:
4-Mar-2006
  MySQL 5.0 Adds Features for Enterprise Developers and DBAs
by Ken 
  North

Baseball legend Satchel Paige is famous for having said 

Don't look back, something might be gaining on you." Companies selling 
a commercial SQL database management system (DBMS) know its MySQL 
that's gaining on them. With an already large installed base, MySQL 
is set to attract new users because of the feature set of version 
5.0. It includes capabilities for which developers have often turned 
to commercial SQL products.


The purposes for which we use personal, mobile, workgroup, departmental, 
enterprise and web databases are diverse. Application requirements 
are a primary determinant of the capacity and features we need from 
an SQL DBMS. For example, a high-volume transaction processing web 
site places greater demands on a database than a contact list manager 
for laptops and small business servers.


A Web Techniques magazine article, "Web Databases: Fun with Guests 
or Risky Business?" discussed features that characterize an industrial-grade 
SQL DBMS. It explained SQL security and mission-critical databases, 
defined as


    "A database is mission critical if its lack of data integrity has 
    serious consequences, such as causing the loss of customers or even 
    lives."


Maintaining data integrity is implicit -- that's a prime directive 
for a DBMS. The article explained other features that enterprise 
developers look for in an SQL platform:


    ... mission-critical applications require features such as intrinsic 
    security, transaction journaling, concurrency controls and the ability 
    to enforce data integrity constraints. Without those features, you 
    do not have secure, robust databases. Connecting a database to a 
    Web server adds other requirements, such as a multithreaded architecture 
    and the ability to do database backups without taking the server 
    down.


    Freeware and PC DBMSs are suitable for certain classes of applications, 
    but not for high-volume Web sites and mission-critical databases. 
    In any case, don't bet your business, or lives, on such software 
    unless you have the source code and the expertise to understand and 
    repair it.


Since that article appeared in print, improvements to MySQL have 
removed the "not ready for prime time" label. Features described 
in that article are now available to MySQL users:

    * transactions
    * concurrency control, locking, SQL standard isolation levels
    * intrinsic security
    * integrity constraints
    * thread-based memory allocation.

  TII Computer Deals at Dell Home Systems 180x150
	


MySQL uses separate threads to handle TCP/IP and named pipes connections, 
authentication, signaling, alarms and replication. The combination 
of threaded architecture and MySQL clustering provides powerful parallel 
processing capabilities. MySQL can process transactions in parallel 
with separate connections on separate processors using separate threads.
MySQL Milestones


A decade of development has moved MySQL out of the bare-bones DBMS 
category, enlarged its user base, and turned MySQL AB into a profitable 
company. One of the important milestones was integration of the InnoDB 
engine with MySQL 4.0. That upgrade gave MySQL multiple tablespaces, 
tables greater than 4GB and support for transaction processing. Other 
enhancements included OpenGIS spatial data types and hot backups. 
The latter enables a DBA to perform a backup without taking the DBMS 
offline. Hot backup software is available as a commercial add-on 
for databases using the InnoDB storage engine. 


MySQL 5.0, the newest version, is a major milestone. There have been 
enhancements to the tool sets, storage engines, types and metadata. 
 MySQL 5.0 includes features enterprise developers have come to expect 
from commercial SQL products. 

    * capacity for very large databases
    * stored procedures
    * triggers
    * named-updateable views
    * server-side cursors
    * type enhancements
    * standards-compliant metadata (INFORMATION_SCHEMA)
    * XA-style distributed transactions
    * hot backups.


MySQL has a demonstrated capacity for managing very large databases. 
Mytrix, Inc. maintains an extensive collection of Internet statistics 
in a one terabyte (1 TB) data warehouse that contains 20 billion 
rows of data. Sabre Holdings runs the oldest and largest online travel 
reservation system. It replicates 10-60 gigabytes per day from its 
master database to a MySQL server farm. The MySQL databases are used 
to support a shopping application that can accommodate a million 
fare changes per day."
Graham:
4-Mar-2006
Jim Starkey Sells Netfrastructure to MySQL AB and Moves On

 Today Jim Starkey, who led the original Vulcan fork of Firebird, 
 announced that he has sold his Netfrastructure web software business 
 to MySQL AB and will be taking up a full-time job as a developer 
 for the MySQL company.

Jim won't be a regular code contributor around Firebird any more, 
but he has promised he'll still be around to post the occasional 
"wolf-gram" in Firebird-Architect.

We in the Firebird Project wish Jim all the best for what looks like 
an interesting turn in his career.
Terry:
4-Mar-2006
Sorry about the size of that paste above,.. only mean to post the 
last paragraph, and then my connection went down right after..
Geomol:
6-Mar-2006
:-D That robotic mule is really funny! Amazing and interesting, what's 
possible these days.
Pekr:
6-Mar-2006
Gaining root access to a Mac is 'easy pickings', according to an 
individual who won an OS X hacking challenge last month by gaining 
root control of a machine using an unpublished security vulnerability. 
On February 22, a Sweden-based Mac enthusiast set his Mac Mini as 
a server and invited hackers to break through the computer's security 
and gain root control, which would allow the attacker to take charge 
of the computer and delete files and folders or install applications. 
Within hours of going live, the 'rm-my-mac' competition was over. 
The challenger posted this message on his Web site: "This sucks. 
Six hours later this poor little Mac was owned and this page got 
defaced".
JaimeVargas:
6-Mar-2006
Same competition was done for obsd and has not been claimed ever.
JaimeVargas:
6-Mar-2006
The problem imho is not necesarily the OS but how all the apps and 
networking layer on the OS are configured. by default. OBSD is paranoic 
for this so very little is open or install, but as you install things 
like apache, you maybe opening holes for system exploits.
Pekr:
6-Mar-2006
http://www.osnews.com/- go there - there is also discussion and 
the link to the original article ...
[unknown: 10]:
6-Mar-2006
Yes Obsd has a very nice qualification scheme..and Im very happy 
with it ;-)
Ashley:
6-Mar-2006
That Mac article (from MS-owned ZDnet) has been widely discredited. 
From a follow up article on OSnews:


The ZDnet article, and almost all of the coverage of it, failed to 
mention a very critical point: anyone who wished it was given a local 
account on the machine (which could be accessed via ssh).


Original ZDnet article: http://www.zdnet.com.au/news/security/soa/Mac_OS_X_hacked_in_less_than_30_minutes/0,2000061744,39241748,00.htm
Follow up challenge: http://test.doit.wisc.edu/
[unknown: 10]:
16-Mar-2006
And another one hitting the race.. -> http://officelive.microsoft.com/
[unknown: 10]:
17-Mar-2006
and another goole release hits the road... http://base.google.com/
[unknown: 10]:
22-Mar-2006
and another google...http://finance.google.com/finance
Pekr:
22-Mar-2006
that is strange - all mail is plain text and can be og GBs of size 
.....
[unknown: 10]:
22-Mar-2006
lets hope those browsers will do some good for the internet community.. 
For now they only go straight ahead wihout improving things..they 
just add gadgets and bells..oohh yes and yuo need at least 50 Meg 
of memory free to run those bulldozers.. ;-)
Pekr:
22-Mar-2006
nah, Mozilla is the only browser, which does go like the buldozer, 
implementing new MLs .... and look at W3C, how many MLs we've got 
:-) Opera does nice job working on mobile devices, whereas MS tries 
to catch-up, but - imo they are more and more trying to make us dependant 
upon .NET ...
[unknown: 10]:
22-Mar-2006
Do you know how much memory those Mobile devices use to run Java 
;-) Its outrages actualy...but it works..oke..and indeed all the 
modules etc its handy.. BUT..its all XML or C++ or Java Or javascript 
not realy the nicest lagunages to work with especialy when they need 
an engine to run on thats bigger then my Linux kernel....
[unknown: 10]:
22-Mar-2006
About the Email.. I think they dont understand where email is going.. 
If they would have build an email client that would support encryption 
or packaging from text to grafics they would be on the route to the 
future.. For..re-inventing the wheel with lots of bells and advertising.. 
(yes im a little anti java and .net internet applications currently 
;-) Ever stranger...NET is dead and also is Java..still many use 
it.. i dont get it..
Pekr:
22-Mar-2006
Java is not dead. It just moved to another segment - server apps. 
More and more systems are moving to Java  .... and .NET, at least, 
is being regarded as second big contender. I don't understand why, 
but then our company was never dependant upon any MS development 
tools. We are IBM guys :-)
[unknown: 10]:
22-Mar-2006
Isnt it more that the Java community is moving other ways because 
of the onsupport by SUN? And I have read from a .NET developer from 
Microsoft that the complete architecture of .NET was wrong wrong 
the start and that they where running into problems and because of 
that they wuold not survive time?
Pekr:
22-Mar-2006
hmm, I talk with various companies reps, big ones, as SAP, IBM etc. 
consultants, and they mostly say there are three dev. containers 
- C++, Java, .Net ....
[unknown: 10]:
22-Mar-2006
I think that those development statements from consulatns are more 
related to the concervitive idea behind programming, like stick what 
you know..that cost effective..(im not sure)..and also the unknown 
is hard to target in projects... (and now im back angain at the year 
2000 and the rebol story...) Anyway.. as long as they stick with 
C++ .NET and Java.. the rest has probably an advantage..
[unknown: 10]:
22-Mar-2006
Oke SAP and Oracle is a different story... ;-)
[unknown: 10]:
22-Mar-2006
I wished that java and .NET started like this -> 

What would we put inside a binary if we only would have 600 Kb to 
be filled..
Pekr:
22-Mar-2006
:-) they would put there credits and project specs comments, 600kb? 
noone thinks in that terms today :-)
[unknown: 10]:
22-Mar-2006
I must say though.. Its the way you program Java.. The speed is not 
always the issue because i have seen java boots screens that did 
my ears wave.. ;-) But i dont understand the choise of java..The 
idea thats its multi-platform is long past..there are alternatives..(but 
those are unknown and scary :-)
Pekr:
22-Mar-2006
java is open-source, cross-platform, and hence availalbe everywhere 
- rebol is not ... and untill it changes, ppl will feel unsafe ....
[unknown: 10]:
22-Mar-2006
I agree..but its a contradiction ...the idea of company's floating 
on opensource and sell their applications for big money... that happens 
just too often...If you develop with opensource be that flexible 
and sell it for a low street price.. In this case SUN is taking the 
honour but not the money...pitty...
yeksoon:
22-Mar-2006
Marketing talks... (I believe).


I am not sure when MSIE 7 will be released...but I would think they 
time the release of FF2.0 to be around the same time or earlier...and 
do their marketing spills
Allen:
22-Mar-2006
http://www.podiobooks.com/Serialised Audio Books. Interesting to 
see serialised form revisited, Much of Dickens and H.G Wells work 
was originally serialized in magazines & newspapers long before they 
became popular Novels.
Allen:
23-Mar-2006
From Henrik's link above: 

What's the difference between OS X and Vista?

Microsoft employees are excited about OS X...
yeksoon:
23-Mar-2006
http://10000th.com/

a flash site to showcase Tag Heur.

try out how you can flip the pages and even tear it out.
[unknown: 10]:
23-Mar-2006
Evolution Robotics today announced a strategic alliance with WowWee 
Robotics(TM) to integrate Evolution's technologies for vision and 
navigation into the next generation of WowWee products. http://robotgossip.blogspot.com/2006/03/wowwee-partners-with-evolution.html
Terry:
24-Mar-2006
IE 7 is one of the buggiest pieces of garbage I've ever come across.. 
here's one problem I had.. (a quoted solution.)

This is just so 
Microsoft" it should almost be expected.


I had recently installed IE7 in an unsupported way using the instructions 
found here.  The nice thing about this, is that it lets you run IE7 
side by side with IE6.  As a developer, there's no way to just let 
IE7 install itself over IE6, so I thought this would be a good solution.


Fired up IE7 for the first time and it took about 2 minutes for me 
to realize there is just no possible reason why anybody would find 
this useful at all.  Not for end users... not for developers... it 
just doesn't work right.  The new toolbars are not that special either, 
IMO.


So, that was it.  At least for Beta 2.  Fast-forward one week and 
I'm doing some serious testing of one of my new apps.  Of course, 
I'm testing on the fly in Firefox but testing in both browsers after 
finishing all pieces of major functionality.  Enter my URL into IE, 
press enter... and bang... up comes Firefox with the page I loaded!?!?! 
 Uh... what?


Google to the rescue.  A search for "IE Launches Firefox" returned 
only 2 results... but luckily, one of them had the solution.  It 
seems that a registry key installed when IE7 is run causes this situation. 
 Just brilliant.  From the IE Blog... locate this registry key and 
remove it: HKEY_CLASSES_ROOT\CLSID\{c90250f3-4d7d-4991-9b69-a5c5bc1c2ae6}

As stated... it fixed my problem.  Thanks Microsoft...
DideC:
24-Mar-2006
The windows registry is probably the most "crappy" (native english 
speaker, please replace this word by the word that is in my head 
and I can't find) invention of all the computer history.


If you have a problem and it's not hardware, then it's 99% chance 
it's a registry problem. The 1% rest is for files and DLL problem.

My boring all day experience.
Pekr:
30-Mar-2006
hmm, hmm - http://www.eweek.com/article2/0,1895,1944044,00.asp - 
Ruby on rails takes on Java ... interesting how Carl is right - ppl 
don't buy technologies, they buy solutions ... and Rails is solution, 
which makes Ruby a king ... although it all is surrounded by nice 
hype .....
yeksoon:
31-Mar-2006
RoR like most other framework, sells the ease to get things done. 

What I think makes them standout, is the way they SHOW it.


1. Ruby itself is always a 'simpler' approach to Java. That is one 
EASE


2. They SHOW you on their webcast...and they said it themselves. 
'SHOW, Don't Tell'
http://rubyonrails.org/screencasts


3. And they also SHOW it by using tools other programmers use, eg 
TextMate, drawing a targetted group
potential user.


The success of RoR puts a lot of big companies to shame. (given the 
resources they have)
Terry:
31-Mar-2006
I've toyed with RoR, and frankly, it doesn't impress.  
For one thing, the syntax is archaic... like this.. 
def self.up
add_column "posts", "author_name", :string

Post.find(:all).each {|posts|posts.update_attribute :author_name, 
"Anonymous"}
end
def self.down....
Henrik:
5-Apr-2006
http://www.apple.com/macosx/bootcamp/<--- Apple Boot Camp, lets 
you partition and dual-boot OSX and XP easily on Intel Macs
JaimeVargas:
11-Apr-2006
Yes, and that he considers the Open Source movement the success story 
in biz, while the old model is dying the lawyers from the past are 
trying to derail it.
Group: !Liquid ... any questions about liquid dataflow core. [web-public]
Maxim:
7-Mar-2009
I have a newer version which has the "ability modifiers" added as 
extra labels to the right of the abilites... it took me 5 minutes 
to do, and it only needs one new simple !plug derivative:

;- !ability-mod
!ability-mod: make !plug [
	valve: make valve [
		type: 'ability-mod
		;-----------------
		;-     process()
		;-----------------
		process: func [
			plug
			data
		][
			vin [{!ability-mod/process()}]
			plug/liquid: 0
			vprobe data
			if integer? data: pick data 1 [
				plug/liquid: to-integer (data - 11 / 2)
			]
			vout
		]
	]
]


and necessary linkage within the !character setup, and appropriate 
faces in the window layout.
Maxim:
7-Mar-2009
currently preparing 2 liquid modules for distribution on rebol.org 
:
  * LIQUID-VID : adding liquid functionality to ANY vid face

  * GLUE : a (hopefully growing) set of reusable core !plug classes 
   (like !sum and !subtract, in blood example).
Ammon:
7-Mar-2009
Well, I just got home from work.  I'm cooking some dinner which I 
will eat while watching last night's episode of Battlestar Galactica 
and then I will download Blood and play with it a bit.
Maxim:
8-Mar-2009
just thought I'd share this list I built while coaching someone in 
using liquid last night...

SANITY PRESERVING KNOWLEDGE WHEN USING LIQUID:
--------------------------------------------


#1:  liquid isn't a bully  - liquid shares its state, but asks for 
data (pulls, observes, etc) from its subordinates ("parents"), not 
the other way around (it doesn' push or force feed, like a highly 
inneficient signal messaging engine).


#2:  liquid is lazy by default - unless a plug or one of its observers 
 ("children") is stainless, nothing will process automatically (thus, 
faces usually are set to stainless, so that they refresh automatically).

#3:  liquid has several computing modes in a single base class.  
  * linking is for once sided dependencies
  * piping is for inter-dependencies or synchronisation
  * containment is for data storage
  * linked-containment is for processed data storage   


#4:  liquid mutates - plugs automatically change computing modes 
when you call some methods like linking, piping and filling.  depending 
on the order of these operations, a plug may "stick" to its previous 
computing mode.  e.g. a piped node remains piped, even you attempt 
to link it to something.


#5:  liquid is alive - remember that as you are setting up a liquid 
network, your plugs will start receiving messages as you are building 
up the tree, meaning that the process() (and other) functions might 
be triggered before every expected connections are done. always verify 
the integrity of the data before starting the process.  (i just got 
stumped by this one again, 5 minutes ago).


#6:  liquid is a collection of droplets - each plug should do one 
thing or manage one step of a process.  the more you break up the 
network, the better you will be at making it stable, reusable, flexible, 
and fast.


#7:  liquid is highly memory efficient - !plug uses shared classes. 
 so all the liquid operations are in a sub-object called a valve. 
 Thus, when you call internal functions, remember they are within 
the valve, and you must supply the plug as its first argument.  my-plug/valve/stats 
my-plug


#8:  liquid is volubile - its slim-based verbose & indented console 
printing engine (vprint) is YOUR BEST FRIEND.  use it profusely, 
to understand the chain of events and what the hell is going on.
Maxim:
8-Mar-2009
SANITY PRESERVING KNOWLEDGE WHEN USING LIQUID:
--------------------------------------------


#1:  liquid isn't a bully  - liquid shares its state, but asks for 
data (pulls, observes, etc) from its subordinates ("parents"), not 
the other way around (it doesn' push or force feed, like a highly 
inneficient signal messaging engine).


#2:  liquid is lazy by default - unless a plug or one of its observers 
 ("children") is stainless, nothing will process automatically (thus, 
faces usually are set to stainless, so that they refresh automatically).

#3:  liquid has several computing modes in a single base class.  
  * linking is for once sided dependencies
  * piping is for inter-dependencies or synchronisation
  * containment is for data storage
  * linked-containment is for processed data storage   


#4:  liquid mutates - plugs automatically change computing modes 
when you call some methods like linking, piping and filling.  depending 
on the order of these operations, a plug may "stick" to its previous 
computing mode.  e.g. a piped node remains piped, even you attempt 
to link it to something.


#5:  liquid is alive - remember that as you are setting up a liquid 
network, your plugs will start receiving messages as you are building 
up the tree, meaning that the process() (and other) functions might 
be triggered before every expected connections are done. always verify 
the integrity of the data before starting the process.  (i just got 
stumped by this one again, 5 minutes ago).


#6:  liquid is a collection of droplets - each plug should do one 
thing or manage one step of a process.  the more you break up the 
network, the better you will be at making it stable, reusable, flexible, 
and fast.


#7:  liquid is highly memory efficient - !plug uses shared classes. 
 so all the liquid operations are in a sub-object called a valve. 
 Thus, when you call internal functions, remember they are within 
the valve, and you must supply the plug as its first argument.  my-plug/valve/stats 
my-plug


#8:  liquid is volubile - its slim-based verbose & indented console 
printing engine (vprint) is YOUR BEST FRIEND.  use it profusely, 
to understand the chain of events and what the hell is going on.
Maxim:
8-Mar-2009
this is embeded within the slim manager and is added to any slim 
library automatically
Maxim:
8-Mar-2009
one note...  you might want to wait for me to release liquid-vid 
and glue... they will both simplify coding of things a lot.  and 
liquid-vid will even have a few dynamically adjusting faces like 
row and column.


funny thing is that its taking me far less energy (and code) to implement 
more dynamic and smart faces than glayout so far.  its also taking 
a lot less code to do a lot of the same things in glayout.
Maxim:
8-Mar-2009
pipes and containers are like storage.  their value is to be used 
as-is.  if you wanted to clean ANOTHER plug to a color, your code 
is correct
Maxim:
8-Mar-2009
btw, I am now building up a series of sample files for use as a tutorial 
as you guys ask questions and post examples.  so from now on, most 
of the question will be compiled into a great collection, used for 
an eventual tutorial!


so keep the questions comming.  independent and explicit code examples 
like the above are excellent.
Maxim:
8-Mar-2009
ammon in the above, the /piped is superfluous  ( and in fact a waste, 
since the p plug only needs to contain data)
Maxim:
8-Mar-2009
its fixed and I wonder when that bug got inserted in the first place. 
 there is another tiny bug which I squashed, which was added with 
a brand-new (and not very teste) feature .
Maxim:
8-Mar-2009
!color: make !plug [
	valve: make valve [
		type: 'color
		;-----------------
		;-     process()
		;-----------------
		purify: func [
			plug
		][
			vin [{!color/purify()}]
			if integer? plug/liquid [
				; convert integer to b/w gradient
				plug/liquid: to-tuple head insert/dup copy [] plug/liquid 3
			]
			unless tuple? plug/liquid [
				plug/liquid: 0.0.0
			]
			vout

   ; this is ESSENTIAL determines if plug is dirty or not... basically

   ; if you return false, the node stays dirty... and is re-evaluated 
   everytime.
			; if you forget to return a value, liquid causes an error. 
			true
		]
	]
]

print "----"
c: liquify !color
fill c  255.255.255
probe content c
fill c  none
probe content c
fill c  11
probe content c

p: liquify !plug
link/reset c p 

; /reset is used to reset the state of the plug as 
; virgin plug before linking. (all links removed, 
; pipes and containers are forgotten/ignored)
; if /reset isn't used, the plug c WILL be linked
; but its links are ignored, since the plug is 
fill p 55



output:

255.255.255
0.0.0
11.11.11
55.55.55
Ammon:
8-Mar-2009
Yes, I understand it.   I'll be modifying my code to use both process() 
and purify() as I'm currently capable of linking multiple plugs to 
!color to set r.g.b separately and I need process for that but purify 
to ensure I have a tuple.
Maxim:
8-Mar-2009
btw adding node freezing, a very fundamental change to the engine, 
took  a huge 4 lines and about 40 bytes to implement!
Maxim:
9-Mar-2009
announcing stream !  I am in the midst of  adding some more functionality 
to liquid which allows it to act as a signal processor (push method 
data-flow) the nice thing is that its incorporated  in the same plug, 
again, and using message stream will retain 100% compatibility with 
all the current plug featureset.
Maxim:
9-Mar-2009
this will allow us to use window events directly within a lazy computing 
environment, for example, or provide dependency notification of child 
to parent changes.  this will allows a node to send a manual signal 
"downstream" and possibly take processing/setup decisions based on 
those messages.  downstream nodes should be able to return data in 
order to feedback the effects of the signal to its author, which 
might then, also activate some code.
Maxim:
10-Mar-2009
And I'm building up a lot of code and information for creating tutorials 
 :-)
Ammon:
13-Mar-2009
I'm finding myself writing standard test code for each plug type 
as I go along and I was just thinking it would be nice if I could 
add the code as a block on the plug such that I could test any plug 
type by calling 

liquify/test !plug


Or something like that...  Could be a nice documentation/usage example 
feature.
Maxim:
13-Mar-2009
As you know, I just totaly reviewed how liquid-vid will handle its 
layout (now a live prodecural network in its own), so I am hard at 
work building that, but I will definitely put some time on integrated 
unit testing, when I rebuild the visual graph editor.  its such a 
great idea, as we have discussed, the I/O aspect of plugs cannot 
be ignored in dataflow, so this would be a great way to profile, 
document and verify expected node behaviour.
Ammon:
13-Mar-2009
BTW...  I seem to be seeing a node processing it's liquid when it 
shouldn't be.  Once a node is liquified, filled and purified it shouldn't 
call process() or purify() again until it is filled again, should 
it?
Maxim:
13-Mar-2009
this and the !plug/document.
Maxim:
13-Mar-2009
btw there is already a plug/valve/stats feature embedded within, 
which gives you the node's current state and setup.
Maxim:
13-Mar-2009
so after 15 years of analysis, design and countless prototypes of 
all shapes and sizes , I am now finally working on the first true 
code that will find itself into some layer of the GLASS engine. 

=oD
Ammon:
13-Mar-2009
LOL, fix blood.r then, please!


; this is ESSENTIAL determines if plug is dirty or not... basically

; if you return false, the node stays dirty... and is re-evaluated 
everytime.
; if you forget to return a value, liquid causes an error. 
true
Maxim:
13-Mar-2009
you guys can't imagine how nice it feels to be discussing and teaching 
about how to use liquid.... I've now got three pupils... in one week... 
that's so cool...
Maxim:
13-Mar-2009
anyone who wants to get to use liquid, don't hesitate to try and 
ask stupid questions.  They are hard to answer, and its giving me 
a chance to get a general feeling of what needs more attention in 
the forthcomming revision to the whole liquid documentation.
Maxim:
13-Mar-2009
for the layout algorythm,  I actualy did a complete flow analysis 
of a row/column resizing liquid graph.  its actually rather simple, 
when you force yourself to follow what data goes where.  note that 
I was able to build this without creating a processing cycle... which 
is neat, since some values are going to the parent face and coming 
back to its pane elements.
Ammon:
13-Mar-2009
Ok...  So, what's the difference between a pipe and a link? >;)
Maxim:
13-Mar-2009
plugs may be filled with data directly.  when you do this the node 
becomes a container, and this effectively turns off all of the linking 
management..
Maxim:
13-Mar-2009
your plug simply stores a value and returns  it (but purify IS still 
called on it)
Maxim:
13-Mar-2009
note that you can LINK the pipe server and set it to a linked-container? 
 too! but that is advanced usage.
Maxim:
13-Mar-2009
linked-containers, accumulate their subordinate data AND add the 
value you filled , as if it where an extra link... which then goes 
through the normal process mechanism.
Maxim:
13-Mar-2009
the pipe server can be used to normalise the data into its purest 
form, and allows many things in your application to interact with 
it as peers.  one can be a string another an int.  but for each pipe 
client, they could care less about who and what the others are.  
they just need to know that, in this case, they are always receiving 
an int, and can convert it back to the format they need.
Maxim:
13-Mar-2009
The computing methods mutation is one of the most powerfull and unique 
aspects of liquid.  the same plug can be used for many different 
purposes, and it can go to-from any method to another.
Maxim:
13-Mar-2009
one important note, is that switching computation modes, NEVER unlinks 
previous subordinates... it will only ignore them.   only the pipe 
aspect is dynamic and can be unlinked automatically by the internal 
plug managers...
Maxim:
13-Mar-2009
btw, when we are working with pipes, we use the attach and detach 
functions instead of link/unlink.
Maxim:
13-Mar-2009
and strangely, you guys are all pretty much evolving and learning 
in about the same pattern... so I have some clues into how to order 
the tutorials.  :-)
Maxim:
13-Mar-2009
a subtle but extremely powerfull and explicit demonstration of dataflow 
robustness.
Maxim:
13-Mar-2009
glue now has a plug that returns gfx text size given any value and 
a font  :-)
Maxim:
13-Mar-2009
-------------------------------------------------
NOTE:  

FROM NOW ON, 

every usable !plug definition that I post will be in black, to make 
it easy to differentiate from test code, and copy in your own libs.

-------------------------------------------------

	;-     glue-proc-face:
	glue-proc-face: make face [size: 100x100] 

	;-----------------
	;- !gfx-text-area
	;-----------------

 ; this class returns the area which a value, when represented as 
 a string, occupies.
	;
	; returns: a pair representing width and height
	;
	; usage:

 ;  linked only, unlabeled.  (filling this node will permanently freeze 
 it)
	;
	; inputs:
	; (1) [any!] value
	;     the first input is formed to a string, or set to ""
	;   	
	; (2) [object!:font] font to use

 ;     the test will be run with this font, irrelevant of what font 
 is currently set in the face.
	;
	; <TO DO>: add explicit support for /para facet
	;-----------------
	!gfx-text-area: make !plug [
		liquid: 0x0
		
		;-----------------
		;-    frozen?()
		;-----------------
		; plug won't do anything until you have proper linkage done.
		;-----------------
		frozen?: func [
		][
			vin ["" self/valve/type {/frozen?()}]
			vout
			(2 <> length? subordinates)
		]

		valve: make valve [
			;-----------------
			;-    process()
			;-----------------
			process: func [
				plug
				data
			][
				vin ["" self/valve/type {/process()}]
				plug/liquid: 0x0
				glue-proc-face/font: data/2
				glue-proc-face/size: 1000x1000
				glue-proc-face/text: any [
					attempt [to-string data/1]
					""
				]
				plug/liquid: size-text glue-proc-face
				
				vout
			]
			
			
		
		]
	]
Maxim:
13-Mar-2009
yep, black text is tested and functional... note the explicit comment 
header
Pekr:
13-Mar-2009
I think I still don't understand what in particular Liquid is, but 
would it be e.g. good system to do some animation system in? I mean 
- something like Scala. You have some objects, wipes, effects, happening 
at various times, and the might be cross dependant, etc., so that 
when something happens here, something else happens there :-)
Ammon:
13-Mar-2009
Is there a way to hook into the attach function?  I want to build 
a pipe-server that handles multiple values but I want to be able 
to hook up the input plugs in any order and in some cases not have 
a plug for any given value.  To accomplish this I want to create 
a block that tells me which order the plugs are connected in so that 
I can use the index to select the correct plug from the server's 
liquid.
Josh:
14-Mar-2009
this may be a wild guess, but doesn't the !plug/subordinates do that? 
  I haven't been using pipes so much as links, but I would guess 
you would look at that, and I'd assume the plugs are in the order 
that they have been attached.  Maxim of course will correct me if 
I'm wrong.
8201 / 4860612345...8182[83] 8485...483484485486487