AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 5907 |
r3wp | 58701 |
total: | 64608 |
results window for this page: [start: 13901 end: 14000]
world-name: r3wp
Group: Tech News ... Interesting technology [web-public] | ||
Pekr: 12-May-2006 | Jaime - ok, I correct myself - to what you said by "rebol sending me to loopholes" and calling it a productivity issue, from that point you are probably more than right ... | |
Pekr: 12-May-2006 | in fact, I am one of two "right hands" (it is a saying in czech language) for our CTO. And the reason is, that I provide him with opinions not tied to any products of my liking. Our Delhi group, would do everything in Delphi, our Lotus Notes group, would do everything in Lotus Notes, the same goes for VB and SAP folks, and of course, jokingly, I would do everything in Rebol. But - things need some level of understanding of current/historical situation in the company. | |
yeksoon: 12-May-2006 | maybe a 'bridge' for REBOL-Ruby. allowing Ruby to call or access REBOL 'objects' directly and vice versa. | |
Pekr: 12-May-2006 | Now we know Flash and Ruby try to go outside the browser, so I wonder how usefull Rails will be in such a territory. I still think, that IOS like "platform" for app delivery, is still unmatched. Dunno what Altissimo is supposed to mean, but having rebol services or uniserve/beer whatever based framework for app distribution, like it was planned with Morpheus or even Altme, would be a win .... | |
Volker: 13-May-2006 | Volker compilation of rebol is due to context free grammars. If you take this restriction you could probably have a bootstrap of rebol. But you can not compile just any rebol program. So this is a problem. We are talking about bootstrapping. There is no need to compile every program. Its only needed to have a subset to build the interpreter. And that one must be able to generate machine-code. | |
Volker: 13-May-2006 | Thats what forth does with meta-compilers and squeak does with slang. Ugly, so a pretty good motive to do most in meazzines :) | |
Henrik: 13-May-2006 | http://www.easy2remember.name/media/51/Spore-game-video.html<--- for gamers, this looks mightily impressive. An evolution game with a 100% dynamic world. | |
Henrik: 13-May-2006 | actually not just a world but an entire universe | |
Henrik: 13-May-2006 | For inspiration, Wright looked to the demo scene," a group of (mostly European) coders who specialized in doing a whole lot with a little bit of code. Their procedural programming methods were able to, for example, fit an entire 3D game in 64K, using mathematics to generate textures and music, etc. "I just found this incredibly exciting," Wright confesses, describing the kinds of work that he saw come out of the demo scene." So here's what he did: he recruited an elite strike team of coders (who, if you were to believe his slideshow, dressed like ninjas) and put them in a hidden facility" to experiment with new ways of giving the user powerful tools and generating tons of dynamic content without armies of content creators. Best of all, he fired up a demo and showed his audience the results... " this is almost a REBOL like way to create games :-) | |
JaimeVargas: 13-May-2006 | Volker you are right. But I was thinking on Rebol bootstrapping itself and offering incremental compilation too. Just like Dylan or CL. Here is an excerpt from wikipedia. "Common Lisp has been designed to be implemented by incremental compilers. Standard declarations to optimize compilation (such as function inlining) are proposed in the language specification. Most Common Lisp implementations compile functions to native machine code. Others compile to bytecode, which reduces speed but eases binary-code portability. The misconception that Lisp is a purely-interpreted language is most likely due to the fact that Common Lisp environments provide an interactive prompt and that functions are compiled one-by-one, in an incremental way." | |
Volker: 13-May-2006 | I thought about that a bit. IMHO it is not that impossible. But may need new core-features. The idea is that argument-lists rarely change. Rebol lets us inspect the last values a function used. So from the source i cant be sure 'append is really that global 'append. But after the function has run, i can look what the last append was, and see that it got two arguments. And then i can "insert parens" and process it like lisp. Needs a profile-run, or would work really well with a jit. And the interpreter needs to stay in the background for very hart blocks. | |
Pekr: 13-May-2006 | Jaime - from my limited understanding - you would like to see rebol kind of grammar to be defined and used as a wrapper running upon another environment? | |
Pekr: 13-May-2006 | Henrik - imo with more media friendly features and rebol overal extensibility (as was promissed earlier for rebol), we could see Rebol being a tool for some nice demos .... | |
Terry: 13-May-2006 | How about this, a single piece of code to handle any web form.. just add a new field to the html and you're all set... don't need to alter the DB or the serverside processing. | |
JaimeVargas: 14-May-2006 | Terry, Rails already do that. It is called Migrations, a kind of versioned schema, and yes you just add a field and everything works. | |
JaimeVargas: 14-May-2006 | Volker, compiling Rebol is not impossible, it is just very difficult exponentially difficult because " the order evaluation" for the a function call can change at any time. Depending on how the words in the body are defined. This is the CFG feature and problem. | |
JaimeVargas: 14-May-2006 | Now you could use fix the body of a function maybe not allowing for function! values to change dynamically, but this will limit the language. I think the best approach for getting closer to the metal is REBCode. But I am not sure you can hav a Metacircular Rebol. | |
Volker: 14-May-2006 | I dont think it limitsthe language. I never used that as a feature. Well maybe setting 'print to none, but i can live with "print: func[value][]" | |
Volker: 14-May-2006 | I can only imagine cases where that is a bug. | |
Volker: 14-May-2006 | With a bit code around? | |
JaimeVargas: 14-May-2006 | I can simulate lisp APPLY with a dialect. APPLY require variable number of args> | |
Volker: 14-May-2006 | In rebol i put those args in a block. | |
Volker: 14-May-2006 | Lisp does that too in a way, because it puts things always in parens. | |
JaimeVargas: 14-May-2006 | Ah. But the point is not that you code in Rebol, the point is that if you implement a DIALECT that has different semantics and shares the value types! of rebol then you can compile such dialect. | |
Volker: 14-May-2006 | And in rebol we have none when looking at sourcecode. But actually, when a function runs, its "compilation-units" are always the same. Meanswhen a function is run, the lisp-parens can be inserted by reflection. (except of strange hacks) | |
Volker: 14-May-2006 | Not to expensive to get a lot more speed. (interpreter would be always available too.) | |
Volker: 14-May-2006 | If the parens are different thenext time, there is usually a bug. | |
JaimeVargas: 14-May-2006 | So you will make executing slower, because now the interpreter needs to keep track of the whole tree to see which values changed and which are a violation of contract. | |
Volker: 14-May-2006 | Or a compilable-function! , which would be a little bit slower until the jit kicks in. | |
JaimeVargas: 14-May-2006 | BTW, compilabe- function shares some of the traits of closure. closure are a separte function in rebol because they are expensive. In Orca we made all funcs to behave like closures, but we decided to factor it out like in Rebol to keep the speed gains. | |
JaimeVargas: 14-May-2006 | varargs are not the reason for not having a compilable language. Both Lisp and C support varargs, and both are compilable languages. The culprit is CFG. | |
JaimeVargas: 14-May-2006 | From the poing of view of the compiler developer he can't make any assumption on how to compila a rebol expression, while in C and Lisp he knows that the forms are fixed. | |
Volker: 14-May-2006 | Yes. In rebol too, when a function has run. | |
Terry: 14-May-2006 | Jaime, just had a look at 'migrations' and it's not the same at all.. here's the pseudo code just to change the db with rails.. * Step 1: Create a migration with script/generate migration WhatImChanging * Step 2: Modify your generated migration file in db/migrate * Step 3: Run rake migrate * Step 4: Revel in the fact that your database is converted to the newest schema! With Framewerks you never alter the DB.. it's a black box where data goes in and out. | |
Terry: 14-May-2006 | with Framewerks, you could copy a form from any web page, change the 'action' of the submit button.. and it will work perfectly. Rails cannot do that. | |
JaimeVargas: 14-May-2006 | Volker, You can not forbid it. That is just a simple function. It will be the same than this test: does [append s v]. The body of test is not compilable because the block [append s v] execution depends on the environment. | |
JaimeVargas: 15-May-2006 | Volker here is another example, anyF: does [f g h ] f: func[x][print "f third" 2 * x] g: func[y][print "g second" y + 1 ] h: func[][print "h first" 1] anyF ;; == f(g(h())) ;; now lets change g: does [print "g second" 5 ] anyF ;; == produces something like f(g()) h() anyF is compilable only if the order of evalutation doesn't change at runtime. Rebol permits for the order of evalution to be determined by the context in which anyF is run, and the interpreter is smart enough to GC the unconsumed values. This is a feature of Rebol because with the same expression you can have two very different meanings, the disambiguation of the grammar is provided by the context (or environment). This allow Rebol to support easy Dialecting. That is each DSL may need specific evaluation orders, aka semantics, while they share the same code expression. In this case [f g h]. In the example above two different branches of the AST three were followed. But by just looking at [f g h] is impossible to know which branch will be taken. Other compilable languages enforce the order of evaluation by using specific syntax forms to determine what is an expression. Lisp uses parens, while C semicolons and others markers. So in order to make anyF compilable we need to enforce the order of evaluation. One possibilty is to use Rebol parens. anyF: does [(f) (g) (h)] ] *** see note The cost is evaluation speed for the interpreter, and now we are back at using parens at each step. Which is what lisp uses. Should we go back to 1967? The alternative of JIT is possible, but it requires hinting and a sofisticated runtime environment. The translation of Rebol code to some an internal VM like rebcode is simpler and maybe sufficient, otherwise extending rebol via DLLs is the way to get closer to the metal. However, I don't see an easy path to having a Metacircular Rebol. If you do, I hope you write a Rebol compiler and share it with us ;-) | |
Henrik: 15-May-2006 | it would make sense if it was. it would make View a little smaller, wouldn't it? | |
Pekr: 15-May-2006 | It would be nice if Carl would blog a bit about new View internals .... | |
Henrik: 15-May-2006 | well, if he gets them through, it screams AmigaDE replacement, which can be a good thing right now | |
JaimeVargas: 15-May-2006 | So ctx-tuneme and ctx-tuneme2 has the exact same body for F.. However they perform different evaluations, one compiles another not. This is the problem. Now you can keep tuning parentese, but I bet it is always possible to find a way to break it. The larger the body of F, the more posibilities for evaluation exists. | |
Volker: 15-May-2006 | No, that is a problem with an intentionally limited quick POC. But i had to blink twice. :) It currently expectes that all expressions start with a word. Now tuneme2 is [(append 7) (append add) 5 6]. And it fails. As it should with this limited subset. Found it after adding a probe, arglist: first get probe first code which gave 5 on last run. I do think i can match rebol completely (means a rebol with small additions/restrictions). Its as tricky as to compile, say 'c. There are lots of exceptions, but in the end it is possible. | |
JaimeVargas: 15-May-2006 | So in practice compiling rebol is a pain in the arse. | |
JaimeVargas: 15-May-2006 | Much more than other languages. Because there is no easy way to make assumptions. The moment you make an assumption you leave space for a compilation hole. | |
JaimeVargas: 15-May-2006 | Now if the Rebol becomes a function first language like lisp you can get a bit further but still you will need some other markers. | |
Volker: 15-May-2006 | Thought that too. Small kernel, has X, would be a recompile. | |
Volker: 15-May-2006 | There is a live-CD!! | |
Volker: 15-May-2006 | I like the bontago here. http://www.digipen.edu/main/Award_Winning_Games To our physics: Is it possible to build a little physics-engine for such things, and how about collision-detection? The 3d from the contest could be sufficient for a small version of this. | |
Henrik: 15-May-2006 | I love the system requirements: 16 MB RAM and a 386. | |
Graham: 15-May-2006 | that's pretty tough .. I don't think I'd be able to find a 386 these days | |
Henrik: 15-May-2006 | there's still a lot of embedded matchbox-sized hardware that use those | |
Graham: 15-May-2006 | I hope it's not running a 386! | |
Graham: 16-May-2006 | Looks like they have a Pet emulator. | |
Henrik: 16-May-2006 | I had a gold fish once. Died after a week. | |
Henrik: 16-May-2006 | a port of REBOL would double the amount of software available | |
Anton: 16-May-2006 | the system can build itself, including the kernel, common drivers, and all servers (112 compilations and 11 links) in less than 6 seconds on a 2.2-GHz Athlon processor. Yeah! I'm starting to get interested. | |
JaimeVargas: 16-May-2006 | Pekr, the article is not so much about which concurrency model is good or bad. The paper contentionis that the emphasis on developing general-purpose languages that support concurrency is misplaced. Lee believes that a better approach is to develop what he calls "coordination languages", which focus on arranging sequential components written in conventional languages into some concurrent configuration (I suppose that piping in a Unix shell could be considered a limited coordination language). For concurrent programming to become mainstream, we must discard threads as a programming model. Nondeterminism should be judiciously and carefully introduced where needed, and it should be explicit in programs. | |
JaimeVargas: 16-May-2006 | Depends on how they guarantee the order of execution. For examplie in Mozart/Oz you can have a concurrency that ensures that the sequence of computation is maintained, just like if was sequential even though is executed sequentially. | |
JaimeVargas: 16-May-2006 | A general-purpose concurrent language like Erlang or Ada has to include syntax for mundane operations such as arithmetic expressions, a coordination language need not specify anything more than coordination. | |
Volker: 16-May-2006 | I doubt a coordination language can do without general-purpose stuff. Messages must be queued, counted, somewhat verified etc. | |
JaimeVargas: 16-May-2006 | Gabriel. I agree with that statement. So vanilla threads are a problem, and adding concurrency to language need to be done with care. How is R3 going to handle tasking? | |
Pekr: 17-May-2006 | are you on-schedule for alpha at the end of May? In Unicode group Jaime gave some answer, which sounds a bit unsatisfactory, like it would not be decided yet, which way to go in that respect ... | |
Graham: 17-May-2006 | From my early recollections, Rebol was designed for communications ..as a scripting language. | |
Pekr: 17-May-2006 | hehe, they want internet to become OS .... and PC OSes to become just - commodities - non-important in its own, just a layer for internet networked apps :-) | |
Maxim: 17-May-2006 | this is pretty bad ... it opens up a lot of stupid cases... http://www.theregister.co.uk/2006/04/21/moderator_liable_for_comments/ | |
Geomol: 17-May-2006 | Regarding multitasking and REBOL, how far is it possible to go using communication between tasks over the TCP protocol? I've implemented multi-user locking this way with a relational database in REBOL, and it works quite well. I haven't done stress-test, so I have no real measurement, how effective it is, and what the performance is compared to other inter-task communication methods. I'm working on an OpenGL implementation, where OpenGL commands are sent from a REBOL task to an OpenGL server task (written in C), which will execute the OpenGL commands, so I'm about to get more experience in this. Both tasks will run on the same computer, but can easily be on different computers, of course. Anyone with more experience in task communication using TCP? Where is the limit? | |
Pekr: 17-May-2006 | hmm, I am not sure I like it ... you open a port and firewall jumps in | |
Geomol: 17-May-2006 | I'm developing a byte-code style for OpenGL commands, so little communication is needed. Only 1 byte for the command (gl, glu and glut commands are fewer than 256), and 4 bytes for most parameters. So many commands are fewer than 10 bytes of communication. It may not be fast enough for games, but I hope, it's fast enough to make tools and fast OpenGL prototyping (trying out ideas). | |
Maxim: 17-May-2006 | hum Geomol, is it possible to start a new group for this? I'd like to support your endeavor with testing and I think this can become a big thread! | |
Geomol: 17-May-2006 | Maxim, in a few days, I hope. I'll speak up, when I have something concrete to show. | |
Volker: 17-May-2006 | Maybe make benchmarks first. Blast a realistic amount of data from rebol to rebol. Maybe by beer or uniserve, something fast. | |
Volker: 17-May-2006 | Pekr, good hint. But i guess to calls to send a byte are two packets too. And then there was some flag too IIRC. Somebody remember? | |
Gabriele: 17-May-2006 | Jaime, writing to files is something for the os to handle, not the language. what happens if you write from rebol on a file you're writing from another app? | |
Volker: 17-May-2006 | Maybe Jaime means: If you do everything that way, including the os? But, there would be no such thing as a file, there would be a file-server, eg a third task. Which gets request and can sort them out. | |
Pekr: 17-May-2006 | what a crap - I stop buying Creative stuff. If some company can't innovate, they should shut-up and leave the scene. How can anyone with good brain condition patent such a thing as sorting based upon ID3 tag content? | |
Volker: 17-May-2006 | One can even sue about using a trashcan -icon for a trashcan IIRC.. | |
Volker: 18-May-2006 | But what you wrote is similar too either 1 = random 2[ write%file "Hello"][write %file "world"] What a task does depends upon what a task gets. I imagine a task in erlang as a little engine, which gets things of various kinds, wires them together when it has one of each kind and passes them further. And that "further" can not be deterministic with real hardware. Think of an out-of-order-cpu, a little delay in a memory-fetch and the command is processed by another pipeline. And that is without routing around crashed things. I prefer to have a full featured language to calculate the new route, not something restricted. | |
Gabriele: 18-May-2006 | Jaime, I just don't think rebol should manage files. but, you can do coordination, just using message ports. and you can write a dialect over that. | |
Gabriele: 18-May-2006 | if a thread has to wait for another, then you're just wasting time and creating problems with threads. | |
Gabriele: 18-May-2006 | locking is painful, a server like you propose is much better. | |
Gabriele: 18-May-2006 | i need to read that paper jaime posted; anyway if it's just linda style, it's trivial to do with a server handling the tuple space. | |
Gabriele: 18-May-2006 | volker: basically a block of blocks :) | |
Gabriele: 18-May-2006 | you cannot address the block; you can only get the blocks matching a pattern, and publish other blocks. | |
Gabriele: 18-May-2006 | having a defined set of operations, you end up with a system that does not have the usual problems of parallel processing. | |
Volker: 18-May-2006 | Maybe determinism means here: Some things must happen in order, for example writing to a log? So that different runs produce the same result? | |
Gabriele: 18-May-2006 | if you want to log events a and b, and they can happen with watever order, you want to log them in whatever order. if they can only happen in a given order, there is no parallelism. | |
Volker: 18-May-2006 | But a parralel processed image looks the same all the time, or the processing of a big matrix. Still deterministic. Whatever happens inside the box. | |
JaimeVargas: 18-May-2006 | Volker, I was ilustrating that just using the function TASK is not enough. You need a way to prune non-determinism. The example I posted ilustrate the problem. Your example has the same problem than mine, because TASK it doesn't introduce an order of execution. The fact that your example is coded sequentially doesn't mean that the computation will be carried in that order and produce the same result always. Your example only introduces notatation to pass messages between tasks. | |
Volker: 18-May-2006 | Your example looked like locking to me, i saw two threads accessing a shared resource. Semms i missed the point. | |
Volker: 18-May-2006 | So i think a coordination language needs more features, so its similar to a general purpose language. While you said above " a coordination language need not specify anything more than coordination." | |
JaimeVargas: 18-May-2006 | Coordination can help prune non-determinism, coordination is different than communication between threads, lazy evaluation and continuations couuld help here, using a declarative approach to the whole computation can help get rid off non-determinism. The basic ideas are found in the CTM book. | |
Gabriele: 18-May-2006 | Jaime, not yet, but most likely each task will have a message port. | |
JaimeVargas: 18-May-2006 | Volker, Do you really mean this "Complete determinism makes no sense with parallel IMHO", the idea of paralellism is to be able to perform any computation done by a sequential machine faster, a random paralell machine may have some uses, but none of the mainstraem ;-) | |
Henrik: 18-May-2006 | that sounds a little ineffective? | |
Louis: 18-May-2006 | I am thinking the data would be in a layer above the graphic form. Click in the right spots, fill in the right data, print out the completed form, then save the data with the form for later use. Something real simpe anyone can use. | |
Henrik: 18-May-2006 | openoffice 2.0 has a free XForms implementation. it can save PDF's like this so you can edit them like a real form. I haven't worked with it deeply, but I think you can save data from them in a database. | |
Henrik: 18-May-2006 | edit them like a real form => edit them like a real form in adobe reader | |
Graham: 18-May-2006 | An image can be used as a backdrop to a layout. Stick some fields on top and you're done. | |
Volker: 18-May-2006 | No, i want my program to have s much determinism as needed. I call "perfect determinism" when i know "this stuff is done on cpu3, then the other thing a bit later on cpu4". That is perfectly repeatable. But that is not what i need. "this stuff is done on the next free cpu" is enough. But to do that, i need a language which can determine what this next free cpu is. And for that i need a general purpose language (counting cpus, acountig used time, priorities etc). While you said general purpose is not needed for a coordination language. But maybe i miss simething, maybe coordination means something different? | |
JaimeVargas: 18-May-2006 | I never said that you need or not a general purpose language. As matter of fact, I don't think being general purpose has anything to do with concurrency. What I understand is than any new features that add concurrency to a language should do so in a manner that avoid non-deterministic results. Some languages have already accomplished this goal, usually avoiding threads. Threads operate more at the OS level than the language one. So I hope R3 bring us good concurrency features, that ensure that our programs are deterministic, otherwise we could be shipping programs that at first glancelook correct and will work, but could fail later in production as the paper points out. |
13901 / 64608 | 1 | 2 | 3 | 4 | 5 | ... | 138 | 139 | [140] | 141 | 142 | ... | 643 | 644 | 645 | 646 | 647 |