BaCon - Bash-based Basic-to-C converter/compiler

For discussions about programming, programming questions/advice, and projects that don't really have anything to do with Puppy.
Message
Author
big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#383 Post by big_bass »

this is just a small snippet so as to focus on the code example vovchick posted above
which sends out the arguments how the BaCon app was run with and
make the all of the env available to BaCon !
I will just pull out the env string bash version for this example
a big thanks to vovchick

Joe
' call this arg-find1.bac
TRAP LOCAL
SPLIT ARGUMENT$ BY " " TO arg$ SIZE dim

'--- thanks to vovchick for this gem
'--- send out to env the arguments used to run the program
'--- make the env availabe to BaCon
PRINT "==============env====================================="
SETENVIRON "BACONARGS", ARGUMENT$
myvar$ = EXEC$("set")
PRINT myvar$
PRINT "==============end====================================="


'--- use one of the env strings from bash in BaCon
Cmd$ = CONCAT$("echo ", "$BASH_VERSION")
Opt$ = EXEC$(Cmd$)
PRINT "this is the bash version " , Opt$


and I have a new "EXPORT" BACONARGS in the env 8)
BACONARGS='./arg-find1 /root/bacon-examples/experaments/colorbbc3bac'

User avatar
vovchik
Posts: 1507
Joined: Tue 24 Oct 2006, 00:02
Location: Ukraine

#384 Post by vovchik »

Dear puppians,

Here is a little demo that shows how to do graphic overlays in BaCon, making direct use of gtk/gdk libs. With just a few additions - i.e. passed parameters, horizontal and vertical offests and a routine for canvas size - this can replace IM for overlay creation. Have a look. The source and two images are in the archive, as well as a lucid binary. The binary weighs in at 34k, which is better, I think, than 8+ MB for an unpacked IM (although IM is great for many, many things!).

With kind regards,
vovchik
Attachments
overlay.tar.gz
(32.5 KiB) Downloaded 450 times
image1.png
(12.17 KiB) Downloaded 963 times
image2.png
(6.81 KiB) Downloaded 966 times
new_img.png
(23.39 KiB) Downloaded 992 times

jpeps
Posts: 3179
Joined: Sat 31 May 2008, 19:00

#385 Post by jpeps »

thanks! Any advantage over using mtPaint? (guess if you needed to script it...)

User avatar
vovchik
Posts: 1507
Joined: Tue 24 Oct 2006, 00:02
Location: Ukraine

#386 Post by vovchik »

Dear jpeps,

I am certain that mtpaint can do that type of thing well - I just don't know how. It was really easier, for me at least, to program my own little routine for that particular job :) And I learned something at the same time :)

With kind regards,
vovchik

wjaguar
Posts: 359
Joined: Wed 21 Jun 2006, 14:16

#387 Post by wjaguar »

vovchik wrote:I am certain that mtpaint can do that type of thing well - I just don't know how.
In point of fact, it cannot - at the moment. ;-) So, thank you for demonstrating to me that yet another unholy perversion of PNG format does indeed exist in the wild :-) and providing a test example in the form of your "image2.png". I'll add support for such files in the next version.

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#388 Post by big_bass »

Hey vovchik

I know how long you have been trying to remove the imagemagick dependency in the backend
while using your overlay app pikonahttp://www.murga-linux.com/puppy/viewto ... 06&t=49129
congratulations on getting a test run example going with just BaCon and HUG
and no other dependencies
and at such a small size

Joe

jpeps
Posts: 3179
Joined: Sat 31 May 2008, 19:00

#389 Post by jpeps »

wjaguar wrote:
vovchik wrote:I am certain that mtpaint can do that type of thing well - I just don't know how.
In point of fact, it cannot - at the moment. ;-) So, thank you for demonstrating to me that yet another unholy perversion of PNG format does indeed exist in the wild :-) and providing a test example in the form of your "image2.png". I'll add support for such files in the next version.
I don't know much about mtPaint, but I just dragged the two images onto the canvas and saved. (vovchik's looks better, though :) )
Attachments
image3.png
Adding a little transparency
(16.57 KiB) Downloaded 962 times
image4.png
(16.38 KiB) Downloaded 878 times

wjaguar
Posts: 359
Joined: Wed 21 Jun 2006, 14:16

#390 Post by wjaguar »

jpeps wrote:I just dragged the two images onto the canvas and saved. (vovchik's looks better, though :) )
Precisely. And it is because mtPaint cannot properly read in "image2.png", which uses a palette with partial transparency (the first such image I've ever seen).

User avatar
vovchik
Posts: 1507
Joined: Tue 24 Oct 2006, 00:02
Location: Ukraine

#391 Post by vovchik »

Dear puppians,

@ Joe
getting a test run example going with just BaCon and HUG
Thanks. There is no HUG - just straight calls to gtk/gdk, which makes the code more efficient and smaller. The down side of ths approach is that it looks almost like C, but that's OK if it gets the job done.:) I think I am finally ready to modify Picona, since I already have routines worked out for scaling and overlay. It's now a matter of reviewing my old Picona code and making the changes. It will be a small, single binary in the end, which is what I am after, and will run on any Linux/Unix with GTK installed. I just have to sit down and do it.

@ jpeps
I just dragged the two images onto the canvas
In my demo, in creating the final image, the 3D image is not on top but on the bottom, and the clear orb is on top - the overlay. The reason that the 3D is visible is because of the alpha transparency in the orb. That's why it looks better - apart from the scaling issue. :) Moreover, the merged image canvas (background) in the new image is transparent. I am fairly certain that wjaguar will include this capability in a new version of mtpaint, so we just have to wait a bit.

With kind regards,
vovchik

jpeps
Posts: 3179
Joined: Sat 31 May 2008, 19:00

#392 Post by jpeps »

wjaguar wrote:
jpeps wrote:I just dragged the two images onto the canvas and saved. (vovchik's looks better, though :) )
Precisely. And it is because mtPaint cannot properly read in "image2.png", which uses a palette with partial transparency (the first such image I've ever seen).
Yeah, I cheated and filled in the hole with paint for image3 :)

jpeps
Posts: 3179
Joined: Sat 31 May 2008, 19:00

#393 Post by jpeps »

vovchik wrote: In my demo, in creating the final image, the 3D image is not on top but on the bottom, and the clear orb is on top - the overlay. The reason that the 3D is visible is because of the alpha transparency in the orb. That's why it looks better
Converted the image2.png to a jpg first so it was more workable.
Attachments
image5.png
(10.42 KiB) Downloaded 1210 times

User avatar
vovchik
Posts: 1507
Joined: Tue 24 Oct 2006, 00:02
Location: Ukraine

#394 Post by vovchik »

Dear jpeps,

The reason jpg images are never used for icons is because they, by design, have no transparency. The "object" in the centre will always be accompanied by a background of some sort and there will be some dithering with respect to colours. There is, moreover, no alpha channel. Using jpgs for icons is, on the whole, a non-starter unless you add a transparent background and then remove the existing colour around an object and save back in a format that recognizes transparency such as png. Xpm images do have transparency, but they are limited in the number of colours they can display. Mac OSX icns and M$ ico support transparency and millions of colours, too, but for *nix, the standard is png or svg (for vector graphics).

With kind regards,
vovchik

jpeps
Posts: 3179
Joined: Sat 31 May 2008, 19:00

#395 Post by jpeps »

Very interesting, vovchik. mtPaint isn't recognizing the transparency format, so maybe that's why the jpg format looked better...although it comes with a backround, as you noted. A gif transformation (which also supports an alpha channel) looked the same as png.

You can create the transparency with the "opacity" slider in the layers window (as I did in my post) , although the background is part of the object.

It looks like your experiment will lead to some mtPaint development by wjaguar. (wow...he doesn't miss anything! :) )

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#396 Post by big_bass »

here is an update of bacon2bbc
It was bacon2bbc but since this is modified lets use bacon2bb

it now reduces the code 400 lines by using a DATA command

I want to comment that GatorDog was kind enough to show me
quite a few ways to improve the code from a PM he sent
I havent used all of his suggestions because
I need to keep it as simple as possible *so I understand what I'm doing* and at the same time
using the good ideas (the other ideas I will apply to my future snippets though so thanks rod )

there is a basic progress view now just dots but... hey
the linux kernel does that too :D

I will keep at this I am writing a script to do this faster so more to come
but its complete for practical use for adding color to the forum posts
and simple enough for a code example to hack at
Attachments
bacon2bb.tar.gz
(19.4 KiB) Downloaded 537 times
bb.png
(8.56 KiB) Downloaded 1137 times
Last edited by big_bass on Sat 22 Oct 2011, 21:16, edited 1 time in total.

User avatar
vovchik
Posts: 1507
Joined: Tue 24 Oct 2006, 00:02
Location: Ukraine

bb code listing

#397 Post by vovchik »

Dear Joe,

I appreciate what you are trying to do - make code listings more readable - but the "[quote]" solution seems to have its own problems. While the color coding is great, "[quote]" eliminates all leading white space, so far as I can tell, which means all structural indentation disappears. The "

Code: Select all

" directive preserves the structure a bit by converting tabs into single spaces but, alas, has no color. BB code does not seem to  allow for the best of both worlds, unfortunately, so it is either colors for keywords and no structure or structure and no colored keywords. I have tried all sorts of combinations to get something working in a BB sandbox [url]http://www.bbcode.org/playground.php[/url] and have failed. Any ideas or workarounds?

With kind regards,
vovchik

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#398 Post by big_bass »

double post
Last edited by big_bass on Sat 22 Oct 2011, 13:52, edited 1 time in total.

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#399 Post by big_bass »

Hey vovchick
but the "
" solution seems to have its own problems. While the color coding is great, "
" eliminates all leading white space, so far as I can tell, which means all structural indentation disappears.
Any ideas or workarounds?

well ,yes there are quite a few solutions

we have user side solutions and server side solutions

since I can only do what a user can do that limits my options
but there is a java script code reader plug in for PhpBB that does color code but it doesnt allow for BaCon
code but all the work with bacon2bb will help simplify things converting the plugin to display color for BaCon
and HUG keywords


but then it would be easier to just take a screeny with mtpaint of the geany code :)
since we now have BaCon and Hug highlighting for that

I was trying to get SciTE to do Bacon and HUG keywords that would allow you to export to html
then a link could be made this does work for bash code though

somewhere in all of this a solution will be found that is simple light and doesnt fry any brain cells
getting it to work completely :D

I can make a bb html converter like this example but a link would be still be needed to point to the code
uploaded somewhere
seems the best of both words for forum viewing of color

http://www.bbcode-to-html.com/

one quick example
http://www.puppy2.org/slaxer/bacon2bb.html

a big file example
http://www.puppy2.org/slaxer/hug-colored.html


*remember that we are adding an option to something not built in to the original phpBB code
so from that point we just have workarounds


Joe
Last edited by big_bass on Wed 02 Nov 2011, 15:17, edited 1 time in total.

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

bacon2bb

#400 Post by big_bass »

Rod @GatorDog and I
have been working on bacon2bb

and I changed the author to authors :D
'--- AUTHORS: big_bass Joe Arose + rod the GatorDog '

when you convert BB code to html it looks like this
http://www.puppy2.org/slaxer/bacon2bb.html

http://www.puppy2.org/slaxer/bacon2bb-2 ... 1_SLXR.tgz
I packaged it just to make it easy to install

the editable files and source are in /etc/BaCon
you can easily add remove or modify HUG or BaCon keyords
because they are outside the binary and just plain text files now


@Hey vovchik
http://www.bbcode.org/examples/?id=15

Rendering some text (mostly code) while maintaining all white spacing and indentation within. Also uses a monospaced font (each character takes up the same space).

Joe
Attachments
with-color-and-comments.png
(9.89 KiB) Downloaded 1299 times

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#401 Post by big_bass »

bacon2html UPDATED NOV -28-2011
taking your *.bac BaCon code and adding keyword highlighting color
in html format so that you can post your BaCon / HUG code
anywhere 8-)

no middle step needed converts directly to html
http://www.puppy2.org/slaxer/bacon2html-2-6_SLXR.tgz

*I posted this in the BaCon forum
thought that puppy users would be interested too
with this same idea any coding language could be made into html color keywords
without all the php or java, CSS and gtksource view stuff
just keeping things simple and light
Last edited by big_bass on Tue 29 Nov 2011, 16:16, edited 1 time in total.

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#402 Post by big_bass »

found a cheat to make indentations
I did a lot of searching for this BBcode hack
it converts the underscore to white so when you quote its invisible :D
can you see the white line ?
_____

I placed a space before the first left bracket so you could see the code here
[ color=#FAFAFA]_____[/color]

the forum uses #DEE3E6 for the background grey
_____hover over with the mouse to see this just before the word hover

__


here you can see with code

OPEN "/etc/BaCon/bacon-keywords-data.txt" FOR READING AS myfile
WHILE NOT(ENDFILE(myfile)) DO
__ READLN txt$ FROM myfile
__ IF NOT(ENDFILE(myfile)) THEN
__ SYSTEM CONCAT$("replace " , " -e" , " '", txt$ ,"' " , " '", "<span style=","\"color: Indigo;","\">",txt$,"</span>", "' " , copy_this$,".html")
__ PRINT ".";
__ ENDIF
WEND
CLOSE FILE myfile
Last edited by big_bass on Sun 20 Nov 2011, 23:19, edited 1 time in total.

Post Reply