
| # | User | Message | Date |
| 7841 | Geomol | Maarten, I can't think of a short-cut way to do, what you want. I guess, you have to do the bit-manipulation manually. struct! might help with something like: unsigned: make struct! [hi [int] lo [int]] [0 0] You can then get to high and low 4 bytes with unsigned/hi and unsigned/lo, and you can see all 8 bytes with: third unsigned I made some bit operations, that might help you further: http://home.tiscali.dk/john.niclasen/libs/bit.r | Thu 8:14 |
| 7840 | Geomol | Brian, you're the man! :-) That's exactly, what I'm after. Thanks alot! | Thu 7:30 |
| 7839 | Maarten | Do you know how to handle (and compute with) 64 bit unsigned ints? | Thu 5:27 |
| 7838 | BrianH | Whoops, the change line is: change/part third a binfloat 4 | Thu 3:10 |
| 7837 | BrianH | For a binary float value in the variable binfloat, try this: a: make struct! [x [float]] none change/part third a binfloat a/x The third a accessor returns a reference to the binary data of the struct. Modifications to the value returned affect the struct. Be sure to keep the length of the returned binary the same. | Thu 3:09 |
| 7836 | Geomol | With struct! I can get a binary representation of an IEEE float from a REBOL decimal. But what if I wanna go the other way? The script ieee.r in the Library has such a function, but can't it be done with just using struct! somehow? So I've got the binary representation of an IEEE float and want the REBOL decimal. | Wed 10:16 |
| 7835 | Janeks | Doc, Question about another process launching - did you mean launch process and comunicate with them by using some network protocol? | Sat 23:52 |
| 7834 | Janeks | Yes - I was wrong in my sitation description - I actualy used native MySql driver. I just messed it with MsSQL ODBC. | Sat 23:50 |
| 7833 | Gabriele | Janeks, you may have missed it, but /Command also has a native MySQL driver (so you don't need ODBC for MySQL). (That's what Doc was trying to say :) | Sat 7:09 |
| 7832 | Dockimbel | answer in MySQL channel | 27-Jun 19:32 |
| 7831 | Janeks | try? | 27-Jun 19:03 |
| 7830 | Janeks | good question - the same interest me too | 27-Jun 19:03 |
| 7829 | james_nak | While you're there Dockimbel, I've always wanted to know how one checks for the mysql port being open. Occasionally my apps meet with a closed port and die. | 27-Jun 19:02 |
| 7828 | Dockimbel | Glad to hear that it serves you well. | 27-Jun 18:32 |
| 7827 | Janeks | But I used Softinov in other apps. The new version is very nice. Very easy to code extraction of values from field names. | 27-Jun 18:29 |
| 7826 | Dockimbel | ODBC adds some overhead compared to a direct driver. | 27-Jun 18:27 |
| 7825 | Janeks | I needed it for very simple tasks, so it does what I need. But I did not yet tested f.ex. speed. | 27-Jun 18:20 |
| 7824 | Dockimbel | /Command has a MySQL driver built-in, as you're using ODBC, I'm just guessing that the MySQL built-in driver didn't fit your needs. | 27-Jun 18:18 |
| 7823 | Janeks | What issues you mean? | 27-Jun 18:17 |
| 7822 | Dockimbel | And you had some issues with the /Command version, I guess ? | 27-Jun 18:16 |
| 7821 | Janeks | Quite old story, I had command version and not yet knowledge about Softinov mySql driver, and I used it to access also MsSql | 27-Jun 18:15 |
| 7820 | Janeks | Yes - know that you will answer that! ;-) | 27-Jun 18:12 |
| 7819 | Dockimbel | Btw, why are you using ODBC to connect to a MySQL server ? | 27-Jun 18:12 |
| 7818 | Dockimbel | Not easily. You have to launch another REBOL process, send it the request, let it do the blocking calls to ODBC then send back the results. | 27-Jun 18:10 |
| 7817 | Janeks | Hm... but is it possibe to do so that interfaces is keeping to be responsive while another function/task is running? | 27-Jun 12:33 |
| 7816 | Janeks | Ah - it's clear - it is waiting on when they will be finished. | 27-Jun 12:25 |
| 7815 | Janeks | I have one slow connection to nySql database by using ODBC. Why operations on that pauses also my face events? If I have many sql queries to be done than interface of my application stays unresponsive ( no reactions on any clicks on buttons, tray menus etc.) | 27-Jun 12:23 |
| 7814 | Henrik | no, you can't. | 25-Jun 13:42 |
| 7813 | Janeks | Is it possible to unview console window in rebol-view? F.ex. if I want to show some output and then close it so that program still continues. But it looks like better is to use some custom window face, so that there will be no risk, that user will close/quit accidentaly program by closing console win. | 25-Jun 13:39 |
| 7812 | Janeks | Thanks! Now with version cmdview2706.exe it works. Looks like I had an too old version before (rebcmdview13131.exe) | 25-Jun 11:12 |
| 7811 | Graham | http://www.rebol.net/builds/index.html | 25-Jun 10:08 |
| 7810 | Henrik | Janeks, have you checked the download directory for win32 here: http://www.rebol.net/builds/031/ | 25-Jun 10:00 |
| 7809 | Janeks | Hi! How to upgrade rebcmdview with newer version of Rebol? I would like to make an app with tray icon and menu, but the original rebcmdview shows: ** Script Error: Invalid argument: tray ** Where: set-tray ** Near: set-modes system/ports/system compose/deep/only [ tray: [ add main [ help: getTextByLang "Truck messaging" menu: (menu) ] ] ] While the newer rebview works good with tray, but lacks ODBC support. | 25-Jun 9:56 |
| 7808 | james_nak | Brian, You da man. While I was waiting I decided to throw it into a panel but only use that capability when I run the app on my EEE PC. BTW, I tried some of the other resize code that was posted and it works well but not with my app and it's not that big of a deal to warrant hunting down why. Thanks. | 24-Jun 19:22 |
| 7807 | BrianH | A variant of this resize code will probably be incorporated in future versions of R2. I am just waiting for the R3 VID to settle down so I can retrofit its resize model into the code. | 20-Jun 15:58 |
| 7806 | BrianH | James, I'm clearing the licensing to post it on REBOL.org. It's already in DevBase. | 20-Jun 15:56 |
| 7805 | Chris | You could do -- attempt [find read append url "cvap" "Nothing found"] | 20-Jun 3:34 |
| 7804 | Chris | Which breaks 'find. | 20-Jun 3:30 |
| 7803 | Chris | If 'attempt fails, it returns none. | 20-Jun 3:30 |
| 7802 | Jaymer | hi. I run View in Win XP. My script is very simple...
blk: load %/c/input.txt foreach url blk [if not find attempt [read append url "cvap"] "Nothing found" [browse url]]
and a line in the input file is something like this:
http://website1.com/search?query=
http://website2.com/search?query= So, I want to search for "cvap", and it appends that to the URL and I search the result string and if it DOES NOT say "Nothing Found", then I open that URL so I can visually examine it. It works 95% of the time, but sometimes I get the following error: ** Script Error: find expected series argument of type: series port bitset ** Near: if not find attempt [read append url "cvap"] Any ideas how I can fix this? thx | 20-Jun 3:20 |
| 7801 | james_nak | BrianH, is it something that is available? | 19-Jun 21:02 |
| 7800 | BrianH | resizing | 19-Jun 15:21 |
| 7799 | BrianH | I have done a resixing system for R2 that is intended to be incorporated directly in future versions. It can be used as is now though. | 19-Jun 14:54 |
| 7798 | james_nak | Thanks. I will look those up. | 19-Jun 5:29 |
| 7797 | Chris | I did one interface once where all sizes (components and text) were set relative to the layout size, though it was intended to run full-screen. Not sure that's applicable... | 19-Jun 0:05 |
| 7796 | Gregg | Romano and others have done resizing systems for R2. They can work very well, without tooooo much more effort than normal | 18-Jun 23:42 |
| 7795 | james_nak | I picked up an Asus Eee PC with XP on my latest vacation in Japan. Rebol runs quite nicely. The relatively small resolution has caused me to redo an app. Is there an "easy" way to do screen resizing? Is this something best left up to 3.0? I could in a pinch enclose the screen I have in a scrollable pane set to limits of the Eee PC, I suppose. Thanks as always in advance. | 18-Jun 23:32 |
| 7794 | Chris | Trying to figure out how it works again : ) Same problems with events though... | 15-Jun 14:53 |
| 7793 | Henrik | very cool | 15-Jun 14:49 |
| 7792 | Chris | ; Similar idea -- copied the Apple busy style: do http://www.ross-gill.com/r/busy-style.r view layout [bsy: busy black do [set-face bsy true]] | 15-Jun 14:48 |
| 7791 | Graham | Actually the images in wait-images can be used for the anim widget in Rebgui :) | 15-Jun 8:05 |
| 7790 | Graham | I'll try it out after dinner | 15-Jun 7:12 |
| 7789 | Graham | I | 15-Jun 7:12 |
| 7788 | Henrik | If you're using BEER, maybe you don't have that problem. | 15-Jun 7:12 |
| 7787 | Henrik | I remember not using it, because it didn't work with networking somehow. When View doesn't receive events, it can't work. | 15-Jun 7:11 |
| 7786 | Graham | nice | 15-Jun 7:08 |
| 7785 | Henrik | do http://hmkdesign.dk/rebol/wait-anim.r view layout [a: wait-image tog "Wait for it" [either value [a/start][a/stop]]] | 15-Jun 7:00 |
| 7784 | Henrik | I see certain things I would have done differently today. :-) | 15-Jun 6:57 |
| 7783 | Henrik | http://hmkdesign.dk/rebol/wait-anim.r Not sure it isn't broken though. Never used it. | 15-Jun 6:54 |
| 7782 | Graham | Anyone got a simple busy animation I can use with draw? | 15-Jun 3:58 |
| 7781 | Anton | Very nice work, Rebolek! Nice GUI elements used; I like the rearrangement method used in the list of effects, and I see you've done some nice rotate knobs. | 11-Jun 18:25 |
| 7780 | Henrik | ok | 11-Jun 10:39 |
| 7779 | Rebolek | I was reading the color from the triangle but there's difference between calculated value and value from the gradient so now I'm calculating it from the cursor position. There's some comented code to show you the difference between both methods. | 11-Jun 10:37 |
| 7778 | Henrik | (the latter might give increased precision, I think) | 11-Jun 10:37 |
| 7777 | Henrik | do you directly read the color in the triangle or calculate it based on the cursor position? | 11-Jun 10:36 |
| 7776 | Rebolek | Just that the precision of picking color in the triangle is limited. You can test it if you try to move the picker to one of the edges and you will see that the sliders won't go to min/max values. There's some rounding involved, missing decimal pair! and of course, to be really precise, the color wheel should be at least 256pixels wide. But you can alwas finetune using sliders. | 11-Jun 10:30 |
| 7775 | Henrik | are there any known bugs in it? | 11-Jun 10:27 |
| 7774 | Rebolek | but I may change to MIT or even PD. It's been sleeping on my HD for 1.5 year without any usage :) | 11-Jun 10:26 |
| 7773 | Henrik | I will post this in the internal VID3 group. | 11-Jun 10:26 |
| 7772 | Rebolek | Yes, BSD | 11-Jun 10:26 |
| 7771 | Rebolek | I think it should be much faster under R3. At least I hope ;) | 11-Jun 10:26 |
| 7770 | Henrik | what's the license? BSD? | 11-Jun 10:25 |
| 7769 | Rebolek | Thanks, it could be simplified, I've added the preset paletes so one can get consistent color shades, but it can be easily removed. | 11-Jun 10:25 |
| 7768 | Henrik | ) | 11-Jun 10:24 |
| 7767 | Henrik | (I'm considering that colorwheel for R3 VID | 11-Jun 10:24 |
| 7766 | Henrik | if we could get that color wheel in along with the sliders and a storage for colors, that would be nice. | 11-Jun 10:23 |
| 7765 | Henrik | nice. could it be simplified? | 11-Jun 10:22 |
| 7764 | Rebolek | Also check this small GUI experiment:
do http://bolek.techno.cz/reb/efflist-complete.r rearange the effects using drag'n'drop, duplicate effect whit green "o", remove them with red "x" (that's not good idea, as you cannot add removed effects back) and set their values with knobs, check box and color-picker. | 11-Jun 10:22 |
| 7763 | Rebolek | I recently found this on my HD and as I'm not sure I've ever posted it somewhere, I'm posting it here. Do what you want with it. do http://bolek.techno.cz/reb/request-color.r | 11-Jun 10:18 |
| 7762 | amacleod | Can you post it again. I would like to have a look. | 28-May 19:54 |
| 7761 | james_nak | Nope, can't find where I got it from. : ( | 27-May 19:48 |
| 7760 | james_nak | Amacleod and Graham, my apologies for the two week delay. I don't know where I got it either now though it was written by Didec with Notes: "Code abstracted from altme offline reader by Graham Chiu and used for this chat client". I just saw the Graham part when I first saw it so I thought he had written it. Of course the cool thing is the scrollable boxes work great. | 27-May 19:28 |
| 7759 | Gabriele | "open the area just enough to show all the text" - size-text ? | 26-May 9:17 |
| 7758 | Gregg | Does the line-list facet hold it? | 26-May 1:30 |
| 7757 | Chris | ; You could make the text face dynamically each time: make-textbox: func [width [integer!] text [string!] /local textbox][ textbox: make-face/size 'text (width * 1x0) textbox/text: :text textbox/size/y: second size-text textbox textbox ] | 25-May 22:36 |
| 7756 | Graham | I fetch the text asynchronously ie. I don't have the text at the time I construct the layout .. oh well... | 25-May 22:27 |
| 7755 | Henrik | the face you are using should be of quite large height or width, depending on what you want to size the area on. SIZE-TEXT bases the size of the text on the visible amount of text in the face, so if the face is too small, it will use the face size and not the text size. | 25-May 21:56 |
| 7754 | Henrik | if you have fixed width or height, you could make a face of that fixed with or height with the text in it with the same font as for the area. then you can with SIZE-TEXT get the size back of the required size of the area. BTN does this. | 25-May 21:54 |
| 7753 | Graham | What I am trying to do as in the video i posted on the rebgui channel is to open the area just enough to show all the text .. no less, and no more. | 25-May 21:38 |
| 7752 | Henrik | can't remember if the way it formats text is native. it probably is. | 25-May 21:17 |
| 7751 | Graham | I'll try that ... wonder why the area just doesn't track the number of lines | 25-May 21:17 |
| 7750 | Henrik | unless it returns the index of the string and not a pair. | 25-May 21:16 |
| 7749 | Henrik | with offset-to-caret | 25-May 21:16 |
| 7748 | Henrik | hmm.. can't you do something with setting the caret to a large position and read the position that way? | 25-May 21:15 |
| 7747 | Graham | but if the text only partially fills the area? | 25-May 20:24 |
| 7746 | Rebolek | height-of-area / height-of-font ? | 25-May 11:39 |
| 7745 | Graham | How does one determine how many lines there are of text in an area filled with text? | 25-May 9:21 |
| 7744 | Graham | amacleod - I don't know where grahamchat.r is either .. but they same should be in synapsechat in the contest entries on viewtop | 23-May 3:34 |
| 7743 | Anton | t0: now/precise img: make image! 512x512 i: 0 loop 512 [ loop 256 [i: i + 1 if 2 = random 2 [poke img i 255.255.255]] loop 256 [i: i + 1 if 2 = random/secure 2 [poke img i 255.255.255]] ] print difference now/precise t0 | 22-May 14:28 |
| 7742 | Anton | Nice! By the way, here's the fastest optimization I could come up with (about 30% faster): | 22-May 14:28 |
| 7741 | Geomol | Nice view, Rebolek!!! :-) | 22-May 6:54 |
| 7740 | Rebolek | great! | 21-May 16:18 |
| 7739 | Gregg | randomize: func [
"Reseed the random number generator."
/with seed "date, time, and integer values are used directly; others are converted."
][
random/seed either find [date! time! integer!] type?/word seed [seed] [
to-integer checksum/secure form any [seed now/precise]
]
] img: make image! 512x512 repeat i 512 [ randomize wait .001 repeat j 512 [ either i < 256 [ if 2 = random 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ][ if 2 = random/secure 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ] ] ] view layout [image img across text "RANDOM" tab tab tab text "RANDOM/SECURE"] | 21-May 16:01 |
| 7738 | Rebolek | Thanks Gregg, actually it's not my idea, it's based on this article - http://www.boallen.com/random-numbers.html , I was just curious if there's some pattern in REBOL 'random too. | 21-May 15:54 |
| 7737 | Gregg | Awesome Rebolek! You always come up with great visualizations. | 21-May 15:33 |
| 7736 | Rebolek | The difference between random and random/secure: img: make image! 512x512 repeat i 512 [ repeat j 512 [ either i < 256 [ if 2 = random 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ][ if 2 = random/secure 2 [ img/(as-pair i - 1 j - 1): 255.255.255 ] ] ] ] view layout [image img across text "RANDOM" tab tab tab text "RANDOM/SECURE"] | 21-May 7:47 |
| 7735 | amacleod | Where did you find grahamchat.r. Its not in the library. | 15-May 16:31 |
| 7734 | Graham | oh .. I'm sure i copied it off someone else :) | 13-May 22:26 |
| 7733 | james_nak | It has the illusive text layout like what we are looking at now in Altme; that is, text boxes with different heights. It's so simple when you see someone else do it. | 13-May 21:36 |
| 7732 | Graham | hehe .... I don't even know what that is any more! | 13-May 21:08 |
| 7731 | james_nak | Graham, your 'grahamchat.r" code is just what I've been looking for. Thanks. | 13-May 19:34 |
| 7730 | Gregg | Glad you got it working! | 12-May 16:01 |
| 7729 | TimW | Nevermind. I got detect to work for me by declaring my-pane/feel. I had not been returning the events correctly. Thanks for pointing me in the right direction. | 12-May 1:15 |
| 7728 | TimW | Where can I put the handler such that when the layout is clicked 'my-face also receives a notification. I was hoping I could put the feel in the face declaration, but that doesn't do anything. Also, more than one layout is usually getting added to the pane. I just want to the parent face to receive a message whenever one of them are clicked without having to add the handler in each of the layouts. | 11-May 20:52 |
| 7727 | TimW | sorry about the comments....but just take it as a basic face. then you want to append my-face/pane layout[ txt: area button "blah" [txt/text: "something"]] | 11-May 20:48 |
| 7726 | TimW | That might be what I need. Messing with it seemed to overwrite some other handlers. Suppose you have this: my-face: make face [ offset: offs size: sz color: 0.0.0 text: win-title ;rejoin[window-counter ":" name] ;should this be copy name? plugid: plug-id id: window-counter pane: copy []] | 11-May 20:46 |
| 7725 | Gregg | I rarely use detect, but use insert-event-func quite often. | 8-May 16:21 |
| 7724 | Gregg | Have you tried DETECT? http://www.rebol.com/how-to/feel.html#sect6. | 8-May 16:20 |
| 7723 | TimW | Is there a way to have a face receive mouse input that is recieved via layouts in the faces pane? This sounds weird, but when building components, if there is a generic face object that they all share, then on top of that face you add a layout with certain styles. Is there a way(without adding a handler in the layout) to have the face receive the message as well? | 8-May 4:22 |
| 7722 | Pekr | Some time ago Carl told us, that View uses double buffering, but apparently it is not enough .... | 4-May 13:37 |
| 7721 | Pekr | not sure. HeartBeat might be TCP related. On my Core 2 duo I am not observing jitter, just not smooth animation. Now remember that Amiga with 7MHz CPU was able to provide us with absolutly smooth scrolling. But Win32API lacks vertical blanking period synchronisation, so I wonder if without DirectX or OpenGL we are able to actually make our situation better ... | 4-May 13:37 |
| 7720 | Brock | Is it possible that 'jitter' that occures in Pekrs nice example sharing the same root cause as the 'heart-beat' that Geomol mentioned in a previous post? | 4-May 13:18 |
| 7719 | Anton | Anyway, it doesn't fix the basic problem. | 4-May 4:25 |
| 7718 | Anton | view/new window: make face [ size: 800x150 font: make face/font [size: 40] effect: compose/deep [draw [font (font) text 100x50 "Hello there"]] rate: 50 ] window/feel: make window/feel [ engage: func [face action event][ if action = 'time [ window/effect/draw/text/x: window/effect/draw/text/x - 1 show window ] ] ] do-events i | 4-May 4:23 |
| 7717 | Anton | Yes, you can :) but it's using Draw dialect text. | 4-May 4:23 |
| 7716 | Anton | (so to get text in a window you always need at least one subface.) | 4-May 4:01 |
| 7715 | Anton | No, you can't :) Of course, the window/text goes to the title-bar. | 4-May 4:01 |
| 7714 | Anton | I don't think you can make it 100% smooth without knowing when the screen refreshes. You have two faces (which you might need long term), but you could probably achieve the same text scrolling effect with just one face by modifying its para/offset. | 4-May 3:58 |
| 7713 | Pekr | screen-size: system/view/screen-face/size
news-bottom-offset: 0x100
news-height: 0x100 message: "This is short news scroller. Who makes me smooth? ..." ;--- style for draw dialect bold64: make face/font [style: 'bold size: 64 color: white] ;--- But how to calculate text size for draw? Here's a workaround ... txt: make face compose [size: 2000X200 text: (message)] txt/font: make face/font [style: 'bold size: 64 color: white] text-size: size-text txt view/offset/options layout/size [ backcolor green ;--- we start behind the screen .... at (to-pair reduce [screen-size/x 10]) t: box (to-pair reduce [2000 news-height/y]) ;--- box size ... effect compose/deep [ draw [ font bold64 text (message) ] ] rate 50 feel [ engage: func [f a e][ if a = 'time [ ;--- zde nastavujeme rychlost posuvu f/offset: f/offset - 3x0 if (f/offset/x + (first text-size)) < 0 [f/offset/x: screen-size/x] show f ] ] ] ] (to-pair reduce [screen-size/x news-height/y])(to-pair reduce [0 (screen-size/y - news-bottom-offset/y - news-height/y)])[no-border no-title] | 3-May 16:57 |
| 7712 | Pekr | Here's small challenge. I created following script which is surely full of junk. I am not good View coder :-) Now who helps me to simplify it and to get the movement smoother? :-) | 3-May 16:57 |
| 7711 | Anton | ( yes, effect [draw [rotate]] is different than effect [rotate] ) | 23-Apr 4:43 |
| 7710 | Graham | I'll try that out :) | 22-Apr 20:38 |
| 7709 | Graham | uhmm.. maybe not. | 22-Apr 20:38 |
| 7708 | Graham | that's how I'm doing the rotation now. | 22-Apr 20:38 |
| 7707 | Geomol | You can rotate an image in DRAW like this: view layout [box effect [draw [translate 40x0 rotate 60 image logo.gif]]] | 22-Apr 20:12 |
| 7706 | Graham | I usually learn enough about view to do something I need and then promptly forget it :( | 22-Apr 20:08 |
| 7705 | Graham | nope | 22-Apr 20:07 |
| 7704 | Geomol | Do you know, how to use DRAW to do image transformations? | 22-Apr 19:56 |
| 7703 | Graham | Ahh.. that's no fun. So, I can't use this to deskew. | 22-Apr 19:40 |
| 7702 | Geomol | Seems to only do 0, 90, 180 and 270: http://www.rebol.com/docs/view-system.html#section-9.5 | 22-Apr 19:26 |
| 7701 | Graham | Seems to work ... but I have to rotate 270 deg and not -90 to get the original orientation back. Does effect not take a negative rotation? | 22-Apr 19:22 |
| 7700 | Anton | (if a bit hackish.) | 22-Apr 14:26 |
| 7699 | Anton | I was going to say that modifying the code to support horizontal cropping should be pretty easy. But that method is even easier ! | 22-Apr 14:26 |
| 7698 | Reichart | Smart... | 22-Apr 14:14 |
| 7697 | Graham | To crop the right and left edges I think we can just rotate the image 90 deg, crop it with the existing routines and then rotate it back again | 22-Apr 8:43 |
| 7696 | Graham | It's normally called skew but it's the same. | 22-Apr 4:36 |
| 7695 | Anton | Is it really skew or do you mean rotate ? | 22-Apr 4:13 |
| 7694 | Graham | Would it be hard to write a deskewing function? basically I guess one finds a best fit horizontal line for the base of the text one finds, and then returns the angle needed to deskew it. | 21-Apr 18:54 |
| 7693 | Graham | I think it would be nice now to have the crop work on the sides as well. | 21-Apr 18:52 |
| 7692 | Graham | Ah ... ok. | 21-Apr 18:52 |
| 7691 | Anton | And your code redefines the meaning of 'region (which by itself is bad because it can cause confusion later) unnecessarily. I could rewrite it more simply: all [ region: find-bitmap-text-crop-region image copy/part skip image region/1 region/2 ] but that's just equivalent to my IF above. | 21-Apr 15:46 |
| 7690 | Anton | IF returns none when given false. | 21-Apr 15:40 |
| 7689 | Graham | How about this auto-crop-bitmap-text: func ["Returns a cropped image, or none if the input image was blank" image [image!] /local region ][ all [ region: find-bitmap-text-crop-region image region: copy/part skip image region/1 region/2 ] region ] | 21-Apr 9:56 |
| 7688 | Graham | auto-crop-bitmap-text: func ["Returns a cropped image, or none if the input image was blank"
image [image!]
/local region
][
if region: find-bitmap-text-crop-region image [
copy/part skip image region/1 region/2 ; return a cropped image
]
] Looking at this, it appears to return unset! if region is none! | 21-Apr 9:52 |
| 7687 | Anton | I think if you're going to make an "all-in-one" function, then its name should reflect that. eg. crop-and-pad-ready-for-ocr: func [image][ pad-image auto-crop-bitmap-text image 1x1 ] (where pad-image is adding a 1x1 white border around the cropped image.) | 21-Apr 9:11 |
| 7686 | Graham | though it could be auto-crop to as it were. | 21-Apr 7:34 |
| 7685 | Graham | you're probably right | 21-Apr 7:34 |
| 7684 | Anton | Hmm.. I think the image padding might be outside the responsibility of an auto-crop function. Its job is to remove stuff, not add. It's probably better to write a small generalised function to do the padding (which could be useful elsewhere) and just feed the result of the auto-crop to it. | 21-Apr 7:18 |
| 7683 | Anton | updated again auto-crop-bitmap-text.r replaced old comments with new ones. | 21-Apr 7:15 |
| 7682 | Anton | updated auto-crop-bitmap-text.r removed old code and comments (file is 3.5k smaller) | 21-Apr 6:58 |
| 7681 | Anton | maybe not... | 21-Apr 6:32 |
| 7680 | Anton | "/border" makes more sense, doesn't it ? | 21-Apr 6:31 |
| 7679 | Graham | which is needed for some ocr engines | 21-Apr 6:13 |
| 7678 | Graham | I added a /pad option to mine so that it returns the text with a white space border. | 21-Apr 6:13 |
| 7677 | Anton | The above update also cleans up loose words in the auto-crop-bitmap-text.r file. | 21-Apr 4:45 |
| 7676 | Anton | I've fixed that oversight. Update these files: auto-crop-bitmap-text.r test-auto-crop-bitmap-text.r | 21-Apr 4:44 |
| 7675 | Anton | Oops, forgot the simplest input. | 21-Apr 3:41 |
| 7674 | Graham | if the region is blank, your scan routine returns none, and then the crop errors. | 20-Apr 21:38 |
| 7673 | Graham | Cool. | 20-Apr 20:37 |
| 7672 | Anton | You can fiddle with the last script to make it load your 6 test files (which all yield correct looking results). | 20-Apr 16:27 |
| 7671 | Anton | Rewritten algorithm (selects the larger now). load-thru/update these two: http://anton.wildit.net.au/rebol/gfx/auto-crop-bitmap-text.r http://anton.wildit.net.au/rebol/gfx/demo-auto-crop-bitmap-text.r And download this new test script: http://anton.wildit.net.au/rebol/gfx/test-auto-crop-bitmap-text.r | 20-Apr 16:25 |
| 7670 | Graham | I would always select the larger ... | 20-Apr 3:41 |
| 7669 | Anton | That would help my algorithm. Text which is right up against the edge is likely to be classified as 'junk'. When there is text at the top edge and text at the bottom edge only, then we have two possibly 'content' texts. But which one is the content and which is the junk ? The algorithm is forced to either make a choice (which it could do by choosing the larger one), or not choose at all (which is what currently happens), so including both as the 'content'. If you put just one line of white outside the text you consider 'content' then it will be surrounded by white and the algorithm will select it as 'content'. | 20-Apr 3:13 |
| 7668 | Graham | Anton, I found that the OCR engine I am using needs a white space border, so I am padding the image back again with a little white space. | 19-Apr 23:06 |
| 7667 | Anton | hmm.. more issues... it's complex when you want to scan from top and from bottom simultaneously. | 19-Apr 15:21 |
| 7666 | Anton | I understand the bug in my code. I did not implement the weighting quite correctly. | 19-Apr 12:30 |
| 7665 | Anton | The first one show this result, indeed. Let me analyse... | 19-Apr 10:15 |
| 7664 | Graham | some don't lose some rubbish at the bottom. | 19-Apr 10:03 |
| 7663 | Anton | Currently the algorithm scans downwards and upwards simultaneously, looking for non-white content. When it doesn't find any, it has nowhere to crop to, so no cropping happens. I can change it so that when the scans bump into each other they set that as the "content found" position, and, the scan lines being right next to each other, will result in a 0-height crop region. I will check for that case and return none instead. | 19-Apr 10:03 |
| 7662 | Graham | Ok, sent. some don't have the whitespace cropped at the top. | 19-Apr 10:02 |
| 7661 | Graham | Let me send you some images ... that it appears to have failed on. | 19-Apr 10:01 |
| 7660 | Graham | Yes | 19-Apr 9:58 |
| 7659 | Anton | Let me add that to the to-do list... Is this a common case, by the way ? | 19-Apr 9:58 |
| 7658 | Graham | Hmm.... return none? | 19-Apr 9:56 |
| 7657 | Anton | If there's two words above and below in the image, like this: line one line two middle line four line five then the 3 middle lines will be included, unless there is some white above the top line or some white below the bottom line (in which cases they will be included, respectively). | 19-Apr 9:56 |
| 7656 | Anton | All white does not do any cropping. It didn't find any "content" (non-white pixels) to crop to. What do you want it to do ? | 19-Apr 9:55 |
| 7655 | Graham | what happens if you include two words above and below in the image? | 19-Apr 9:53 |
| 7654 | Anton | good question. let me check... | 19-Apr 9:51 |
| 7653 | Graham | what does it do if the image is all white space? | 19-Apr 9:51 |
| 7652 | Anton | (note, the cropping is only off the top and bottom edges, ie. vertically cropped only.) | 19-Apr 9:51 |
| 7651 | Graham | I'll run them again ... | 19-Apr 9:49 |
| 7650 | Anton | cool, ... why not ? | 19-Apr 9:49 |
| 7649 | Graham | ok, found some images that don't work. | 19-Apr 9:48 |
| 7648 | Anton | It's really very simple. I've just got this include function which kind of hides the simplicity a bit (unfortunately). I wish something like that was built in to rebol. | 19-Apr 9:45 |
| 7647 | Anton | Now you can use the auto-crop-bitmap-text function. | 19-Apr 9:44 |
| 7646 | Graham | ok | 19-Apr 9:44 |
| 7645 | Anton | You should be able to do this instead of use INCLUDE. auto-crop-bitmap-text: get in do %auto-crop-bitmap-text.r 'auto-crop-bitmap-text | 19-Apr 9:43 |
| 7644 | Anton | Almost all my function libraries are in anonymous contexts. Basically, DOing the library file (eg. do %auto-crop-bitmap-text.r) returns the context, and you just GET out the words you are interested in. This job is eased a bit by my INCLUDE function. | 19-Apr 9:41 |
| 7643 | Graham | if they're placed in an anonymous context, how did you make them public? | 19-Apr 9:38 |
| 7642 | Graham | I'll give it a twirl | 19-Apr 9:31 |
| 7641 | Anton | http://anton.wildit.net.au/rebol/gfx/auto-crop-bitmap-text.r http://anton.wildit.net.au/rebol/gfx/demo-auto-crop-bitmap-text.r | 19-Apr 9:26 |
| 7640 | Anton | I have something that's starting to work. If we can preprocess the greyscale images so that they're bitonal (black and white), and denoised, then my algorithm has a chance. | 19-Apr 9:15 |
| 7639 | Anton | Yes, I would grade the scan line according to ratio of black : white pixels on the line. Text is probably between 20-85% black pixels, and borders could perhaps be detected at > 95% black. Anyway, if you don't need it, that's much easier :) | 19-Apr 6:57 |
| 7638 | Graham | Not in my case and I think you might then come up against the problem of deciding what is a border and what is a character. | 19-Apr 6:26 |
| 7637 | Anton | Are there likely to be horizontal black lines (eg. borders) which should be considered junk ? | 19-Apr 6:08 |
| 7636 | Anton | You should just load-thru useful looking rebol urls when you see them here, then you can just scan your public cache. | 19-Apr 6:02 |
| 7635 | Graham | I remembered your auto-crop function but didn't recall where it was .. you shift websites so often! | 18-Apr 20:21 |
| 7634 | Graham | I personally don't need the horizontal edges cropped as it's usually vertical displacement that's a problem with faxes | 18-Apr 20:20 |
| 7633 | Graham | I think the algorithm can assume that if the line advances more than a 1/3 of the way across the depth.. there is no junk. | 18-Apr 20:17 |
| 7632 | Graham | Anton, I'd like fully automatic, and yes, grayscale. | 18-Apr 20:16 |
| 7631 | Anton | Graham, can the image be assumed to be grayscale ? | 18-Apr 17:00 |
| 7630 | Anton | Graham, should the function be fully automatic or can there be user selection involved ? eg. we could divide the image into regions and let the user click the regions which are junk. | 18-Apr 16:35 |
| 7629 | Anton | Ooh. The algorithm above is too simple. The edge cases are harder to manage. | 18-Apr 15:11 |
| 7628 | Anton | I think "auto-crop-bitmap-text" is the winner, for now. | 18-Apr 14:30 |
| 7627 | Anton | Hmm, I like "crop" better than "trim" "auto-crop-impure-border" ? | 18-Apr 14:28 |
| 7626 | Anton | What should I call the function that does this? "auto-trim-bitmap-text" ? | 18-Apr 14:26 |
| 7625 | Anton | A possible algorithm for the new junk cropper could be: 1) advance inwards from each edge until there is a full white line parallel to the edge. 2) if a white line was found for each edge, then advance inwards again, this time searching for a non-full white line, (eg. with a few pixels from the desired text in it). Step back a line and you have your crop region. | 18-Apr 14:25 |
| 7624 | Anton | (that's the function from September 2007) | 18-Apr 14:20 |
| 7623 | Anton | http://anton.wildit.net.au/rebol/gfx/auto-crop.r http://anton.wildit.net.au/rebol/gfx/demo-auto-crop.r | 18-Apr 14:10 |
| 7622 | Anton | I made a very simple auto-crop function, remember ? I can probably modify it to perform the above function... | 18-Apr 14:09 |
| 7621 | Henrik | I was thinking about an automatic cropping tool, but I'm not sure how to do that. | 18-Apr 11:33 |
| 7620 | Graham | Henrik, are you doing some image processing too? | 18-Apr 11:23 |
| 7619 | Graham | Invert the image and then do it again .... | 18-Apr 11:23 |
| 7618 | Graham | Perhaps I can just inch along the top and move down until I reach all whitespace across the image to reach my border. | 18-Apr 11:22 |
| 7617 | Graham | I don't really need to trim the whitespace ... just the junk | 18-Apr 11:22 |
| 7616 | Henrik | I've been looking for something similar. | 18-Apr 11:21 |
| 7615 | Graham | Any view users here? I'm looking for a routine that will trim the whitespace from an image, and will also trim junk from an image. I'm taking a rectangular piece of some scanned text, and if I cut partly thru the text above, or thru the top of the text below, I wish to remove those parts just keeping the word I'm interested in .... | 18-Apr 11:20 |
| 7614 | Graham | Ubuntu is a debian based distro :) | 14-Apr 20:37 |
| 7613 | Ingo | I'm on Ubuntu, and it works for me. | 14-Apr 20:27 |
| 7612 | Graham | works on debian based distros and puppy linux that I've tested. | 14-Apr 20:11 |
| 7611 | Graham | Doesn't work on all distros though ... | 14-Apr 20:11 |
| 7610 | Ingo | Ahh, I was sure, that it would work! Thank you! | 14-Apr 20:09 |
| 7609 | Graham | http://www.compkarori.com/vanilla/display/AGG | 14-Apr 20:01 |
| 7608 | Graham | you just have to specifiy the path in the font definition | 14-Apr 19:54 |
| 7607 | Graham | yes | 14-Apr 19:54 |
| 7606 | Ingo | I remember, that it is possible to use fonts, other than the rebol supplied ones, but can't remember _how_ (and haven't been able to find anything so far. Is it possible to even use uninstalled fonts? (Truetype, Opentype, Type 2)? | 14-Apr 19:47 |
| 7605 | Paul | So read-io is no better than copy/part correct? | 11-Apr 11:44 |
| 7604 | Paul | That is very good to know Gabriele. Thanks. | 11-Apr 10:57 |
| 7603 | Gabriele | Paul, indeed read-io and write-io are no more necessary. however, if reusing the same memory buffer is the intent, then they're the only way to do that. it may be better to just copy a small part of the file at a time and let the GC do its job instead. | 11-Apr 10:36 |
| 7602 | james_nak | It's not my imagination that request-file/title {something} {button} - the button text never shows up (at least not in windows). It complains if it is not there but I don't think I've ever gotten it to work. | 11-Apr 1:50 |
| 7601 | Henrik | well, now of course it doesn't work. :-) oh well. | 10-Apr 12:56 |
| 7600 | Henrik | Gabriele, I've seen it, but I'll make a test script to see if I'm right. | 10-Apr 12:48 |
| 7599 | Paul | Gabriele can you give us a brief understanding of what read-io and write-io are for or when to use them as I know there was a lot of communications from RT early on about shying away from using them. | 10-Apr 11:20 |
| 7598 | Gabriele | henrik, unless there's a bug, that should not really be better. using read-io and write-io with a buffer may be better. | 10-Apr 6:32 |
| 7597 | Ashley | recycle? | 9-Apr 11:56 |
| 7596 | Graham | Hmm... I was setting the image to none afterward to release memory but perhaps it was not enough | 9-Apr 10:26 |
| 7595 | Henrik | loading images should be done into the same place, rather than just load them for immediate saving, e,g. foreach source sources [write/binary target read/binary source] ; REBOL eats your memory for breakfast :-) img: make binary! 1000000 foreach source sources [insert clear img read/binary source write/binary img] ; Should be better | 9-Apr 8:46 |
| 7594 | Dockimbel | Memory overhead that triggers a lot of disk swapping ? | 8-Apr 20:55 |
| 7593 | Graham | I've got this application which does some http stuff ( posting images ) and then waits for user input. But after processing a bunch of images, VID becomes sluggish .. any suggestions as to what might be causing this? | 8-Apr 19:41 |
| 7592 | Dockimbel | "There are code escrows for the event of RT going out of business." Isn't that only for big customers that had signed special contracts with RT ? What about us ? In the worst case, will REBOL be open-sourced or will we have to trash all our REBOL apps and go learn a new programming language ? | 2-Apr 21:19 |
| 7591 | Henrik | R3 is the culmination of 8 years of experiencing what's wrong and right with R2. It's nature and philosophy is basically the same (small, simple, lightweight), but there are improvements in almost every aspect of it. I don't expect R3 to be feature and design complete probably for another 6-12 months as there are still many things missing. R3 is the third attempt at REBOL. The first one was about 30 times slower than R2 and ate much more memory, because the design philosophy was different (Carl didn't implement R1). With R2 we had the right philosophy in place, but the implementation lacks in many areas, and it has many bugs. With R3 we're getting much closer to fulfilling that philosophy with design from long experience with R2, openness and richness without the bloat. | 2-Apr 18:40 |
| 7590 | Pekr | We could also mention open DevBase - all open-sourced parts are going to be uploaded there ... | 2-Apr 18:30 |
| 7589 | BrianH | I agree with you that the monolithic closed source of R2 was a problem that inhibited adoption. This a problem that is getting fixed in R3, and to a certain extent R2 as well starting with 2.7.6. | 2-Apr 18:02 |
| 7588 | BrianH | correlary -> corollary | 2-Apr 17:56 |
| 7587 | BrianH | The correlary to that first point is that we accept the closed source core of R3 because it gets us a better language. If we have problems, we discuss them, and they get fixed. There are code escrows for the event of RT going out of business, Carl dying, whatever. | 2-Apr 17:52 |
| 7586 | BrianH | If you want to really know the philosophical landscape here, then here are some basics: - We trust Carl's judgement on language design - otherwise, we'd be using a different language. - Most of the language features in R2 were intentional, even the ones that seem weird to people who are used to other languages. - This is even more the case with R3, as the decisions made there have to get through a gauntlet of highly skilled REBOL programmers. - The language features that were mistakes may not be the ones you think were, and most of those are getting fixed in R3. - We value tight programming: It is not uncommon to replace dozens of lines of code with a just a few lines of tight code. | 2-Apr 17:49 |
| 7585 | BrianH | REBOL is getting less and less closed source every day, and the authority structure is not that different than the developer groups of most major open source projects. Completely open acceptance of submissions is a nice-sounding idea, but once a project gets large they have to rein in the submissions just to keep the project semi-stable and reasonably bug-free. | 2-Apr 17:29 |
| 7584 | Fork | So what I'd worry about is having REBOL closed source and under control of a single authority structure, and then to entertwine the fates of the pieces together so tightly. That could mean REBOL could have succeeded as a language and grown in acceptance if it hadn't been for REBOL/View having such high ambition for being the delivery vessel for apps. Just my opinion... | 2-Apr 17:23 |
| 7583 | Fork | Ok, I'll cross 'em :) | 2-Apr 17:21 |
| 7582 | Pekr | are=our | 2-Apr 17:19 |
| 7581 | Pekr | So - now you know are very ambitious ambitions ... keep your fingers crossed for us :-) | 2-Apr 17:18 |
| 7580 | Pekr | There is also no third small technology for browser plug-in, so small and agile as View ... so Flash, Silverlight, View .... or do php, perl, python, other guys have anything at hand? | 2-Apr 17:18 |
| 7579 | Pekr | and. We have, well, I have, - the name for the browser plug-in product - FireSide :-) We will Fire from the Side. And FireAnything is popular today ... | 2-Apr 17:17 |
| 7578 | Pekr | yes, are ambitions are high - we are web 3.0, let's others play with web 2.0 for now, thinking they have something cool at hand. Then you see some total jokes as Sun posting their JS based desktop attempt, which is 10 times slower than SWISS (7 years ago View attempt without any optimisations :-) | 2-Apr 17:16 |
| 7577 | Fork | Hey don't take my summary as a bad thing, ambition is good, I just want to understand the philosophical landscape... :) | 2-Apr 17:13 |
| 7576 | Pekr | Fork, this is ok, really. I think we understand your point. Simply put - browser based apps are rational way to go with nowadays. You can run it everywhere, plus other advantages, minus some disadvantages ... | 2-Apr 17:12 |
| 7575 | Fork | Well, I am wondering how accurately I have summarized the REBOL/View point of, er, view above at 9:59:53 AM ) | 2-Apr 17:09 |
| 7574 | BrianH | Or for that matter, why the address book app that used to take a few MBs of RAM is now taking hundreds of MBs. | 2-Apr 17:09 |
| 7573 | BrianH | Sure. Then you can explain to the user why their firewall software is complaining about your application. | 2-Apr 17:07 |
| 7572 | Fork | Yes, definitely, I am advocating generative approaches... not wishing to generally pollute one's mainline code with javascript and HTML. | 2-Apr 17:07 |
| 7571 | Fork | http://localhost works offline. :) | 2-Apr 17:06 |
| 7570 | BrianH | In general, I don't like AJAX, but with HTML 5 it looks like it might become almost acceptable. Still, I would find it easier to generate such code from REBOL dialects than to write it directly. That is not the reason I don't do browser apps as often though. The real reason is that most of the applications people use don't use web browsers at all. Most of the applications I use work offline, and no web interface works offline (though Google, Adobe and the Mono project are working on it). | 2-Apr 17:05 |
| 7569 | Pekr | Fork - I tell you the truth. We would all like to use REBOL for more than we can afford in our daily jobs, hence we are very jealeous to status-quo technologies, which are not cool, but popular :-) | 2-Apr 17:03 |
| 7568 | Fork | And thus, effort is not directed by the core development team on browser-targeted development, though it's being pursued by those to whom it is of interest who also happen to like REBOL. (e.g. Qtask) | 2-Apr 17:01 |
| 7567 | Fork | I guess the answer, essentially, to my overall question is: REBOL programmers (or at least REBOL/View programmers) don't like Ajax, by its intrinsic nature. Thus they are seeking to leapfrog apps that rely on Firefox and web standards by running on a new native cross-platform interface. In the meantime, the bet is that those trying to maintain brittle PHP and javascript codebases will be fight a losing battl that will drown under its own weight, and REBOL/View will step in as the "real" Web 3.0. | 2-Apr 16:59 |
| 7566 | Fork | RE: VID3, I'm open to seeing new things. | 2-Apr 16:57 |
| 7565 | Henrik | That's the basic limitations of VID, not a feature. None of these limits will be here in VID3, so if you want to look at it as VID3 vs. the webbrowser layout engine, VID3 is a far bigger "threat" to it. | 2-Apr 16:50 |
| 7564 | Fork | I am not arguing that REBOL/View should not exist. And in fact though I am talking about how I like Gmail I do currently use Apple Mail, a native program, to read and send messages via Gmail's IMAP (usually). I'm just saying that the reason people are targeting the browser now instead of native code is because browsers have one of the most important features--efficient multilingual text layout in a 2D space, with inline images and such. I can't embed a YouTube video here in the text box... if I type in a hyperlink it's not clickable... right click can't copy text, etc. | 2-Apr 16:48 |
| 7563 | Gregg | Or C#, or SQL, or... :-) | 2-Apr 16:46 |
| 7562 | Geomol | If a REBOL programmer need to produce a lot of javascript, we just build a REBOL dialect producing that code! ;-) | 2-Apr 16:45 |
| 7561 | Geomol | Maybe the problem is, that it's hard to get a good OS with easy access to the needed resources, and only those that's needed? So developers look for platforms, where it's easy, therefore the browser. | 2-Apr 16:39 |
| 7560 | Fork | Note I'm not saying that average REBOL programmers would program in javascript, any more than they are dealing with HWNDs just because REBOL/View talks to windows. | 2-Apr 16:34 |
| 7559 | Geomol | I see programs running in an OS with dynamic linking etc. being superior in every way than running in a browser. I can't think of anything, that's better in a browser. It doesn't mean, I dislike browsers. I use browsers a lot. They're good with hypertext. | 2-Apr 16:34 |
| 7558 | Geomol | "Many things taken care of automatically." It's like starting a program with #include <all.h> and link it with all.lib. | 2-Apr 16:30 |
| 7557 | Gregg | As a developer, I prefer REBOL, but I readily admit that REBOL hasn't advanced as I hoped in some areas. e.g. the plugin has enough issues that a client of mine is having a new UI built in Flash to replace the REBOL version we did initially. Of course, the REBOL version took very little time, and the Flash version is costing about seven times as much. | 2-Apr 16:17 |
| 7556 | Henrik | keep in mind that VID was largely written by Carl in about 1 week with a few additions later on. | 2-Apr 16:15 |
| 7555 | Gregg | Also, as I understand it, qtask is browser-based for acceptance as a product, which is not REBOL's main goal. | 2-Apr 16:14 |
| 7554 | Henrik | Having worked both with VID and with some ajax technologies, I far prefer VID despite its shortcomings in Rebol 2. VID3 in Rebol 3 is a very different beast though and compares more directly with Cocoa or QT. It just doesn't compare with ridiculous javascript based GUIs. | 2-Apr 16:14 |
| 7553 | Gregg | That's Carl's call, and he has strong ideas about how to do things. :-) | 2-Apr 16:13 |
| 7552 | Gregg | If you view the browser as OS, then you also have to take the bad with the good. Both FF and IE shut down a lot more than my OS, bad pages cause problems, PDFs opening can hang things, memory consumption makes me restrt them, etc. | 2-Apr 16:13 |
| 7551 | Fork | Well Reichart believes what I am saying, hence Qtask... I am looking at the source and just pondering why they are solving this instead of having it be the general emphasis of the REBOL interactive environment, in the basic download people get off the web. | 2-Apr 16:12 |
| 7550 | Gregg | I guess we could talk to Reichart and see how much time went into developming AltMe. Then we could find out how much time has gone into gMail, along with how many technologies are used in each, for both the front and back ends. Obviously the scale of things skews direct comparison. | 2-Apr 16:11 |
| 7549 | Fork | I've also argued that if I've got a browser loaded anyway (I always do) then REBOL having its own layer over the native services for REBOL/view might be smaller but it is academic at that point, as both are running. | 2-Apr 16:11 |
| 7548 | Fork | Pekr has an aesthetic argument against the idea that the platform of the future would have lots of bloated javascript powering its behavior. I am just being more practical, and don't understand why I would care about how much javascript is implementing the UI any more than I'd care how big the windows GDI DLLs are. What matters is the dialect... the rest is platform I'm willing to ignore how it's done. | 2-Apr 16:10 |
| 7547 | Fork | Many things taken care of automatically. If you like AltME but do not like Gmail or say Freebase, you won't agree... http://freebase.com/view/en/carl_sassenrath | 2-Apr 16:06 |
| 7546 | Geomol | Too much to read, so the answer to my question might be up there somewhere. If it is, just point me to the time of the answer, and I'll look it up, but here goes: Fork, what is in your opinion the benefit of having the application inside the browser? | 2-Apr 16:03 |
| 7545 | Fork | If the answer is "you can't make something that good without a lot of work, but you can make something else that's not as good rather easily! here's how..." then my interest wanes, because I am only interested in the case of matching the best of breed programs I've seen. Right now those are increasingly web apps. And I think they're winning because of what I referred to vaguely as "leverage". | 2-Apr 15:19 |
| 7544 | Fork | That doesn't matter to them because of other assessments of elegance. I just feel that my own aesthetics of what is elegant or inelegant are being redefined by the likes of Gmail. I sort of don't care how it works when I decide to like t, I use it and notice its nice properties. That gets me to the next question when I assess a new development platform, I ask: "how can I make something as good as that using your tool?" | 2-Apr 15:16 |
| 7543 | Fork | Programming is not all practical, some of it is art form, and people have different ideas of what makes "good art". One person will like the forum chat that is 2KB of source because it is 2KB of source, even if they can't select text and then get a right click context menu to copy it to the clipboard :) | 2-Apr 15:14 |
| 7542 | Fork | Well, don't shoot the messenger... as I say, I do believe in good native apps, just don't think it's where REBOL can "win". Of course, success is up to each person to define. For some it means making the thing the way they wanted it, and I understand that notion well. | 2-Apr 15:11 |