Version 1.1 of the definition has been released. Please help updating it, contribute translations, and help us with the design of logos and buttons to identify free cultural works and licenses!

Difference between revisions of "Logo contest"

From Definition of Free Cultural Works
Jump to navigation Jump to search
(Added content to your first email)
(One intermediate revision by the same user not shown)
Line 4: Line 4:
 
* a label, probably "Free Content"
 
* a label, probably "Free Content"
  
Logos '''must''' have a vector graphics source (SVG preferred), but '''must''' be uploaded in a bitmap format (transparent PNG preferred). A good, free software vector graphics application which can handle SVG and PNG exports is [http://www.inkscape.org/ inkscape]. The dimensions are up to you as long as the images scale well. In order for your logo to be used, the logo itself must be free content with a reduced attribution requirement, but we can work this out with you once we have picked your logo.
+
Logos '''must''' have a vector graphics source (SVG preferred), but '''must''' be uploaded in any format (PNG preferred). A good, free software vector graphics application which can handle SVG and PNG exports is [http://www.inkscape.org/ inkscape]. The dimensions are up to you as long as the images scale well. In order for your logo to be used, the logo itself must be free content with a reduced attribution requirement, but we can work this out with you once we have picked your Debugging Inkscape
 +
To get debug symbols for Inkscape, you'll probably need to recompile it. We use cmake and it has a Debug mode which produces debugging symbols:
  
To participate, [[Special:Userlogin|create an account]] and [[Special:Upload|upload your logos]]. A deadline will be announced once we have a better feel for how many submissions to expect. The [[moderators]] act as a jury.
+
cmake -DCMAKE_BUILD_TYPE=Debug ../
 +
This assumes that you're building everything in a build folder and the repository root is the parent directory.
  
Why participate? Your logo may end up being used on millions of works large and small, giving you exposition and recognition. You will be fully acknowledged on this website as the artist. We may also announce prizes during the course of the contest.
+
If you're looking an older non-cmake version, you'll need to enable the CXXFLAGS manually.
  
Some advice and ideas:
+
Debugging with GDB
* Don't make it too complex. See the Wikipedia article [[w:logo|logo]] for some information on what makes a good logo.
+
To start debugging Inkscape with GDB, load it up:
* It's all about works being used freely, merged, copied, changed, and so on. A visual metaphor that reflects this may make the most sense.
 
  
If you are confused by the wiki process, feel free to e-mail Erik at <tt>moeller AT scireview DOT de</tt>, and he will take care of things.
+
gdb path/to/inkscape
 +
If you want Inkscape to start right away and your version of GDB is new enough, you can start it with
  
''Please note:'' it was recently decided to [[Talk:Definition/Unstable#Pushing_to_1.0|drop]] the term "Free Expression" because it was too ambiguous in our context. Thus, we don't need two different logos anymore, only a "Free Content" logo.
+
gdb path/to/inkscape -ex r
 +
To keep gdb from paginating (splitting output from commands into pages, makes creating backtraces for bug reports more difficult) you can put this in ~/.gdbinit:
  
== New Creative Commons Logos ==
+
set pagination off
 +
To use GDB's text UI, you can run gdb -tui or gdbtui.
  
Please, have a look at new logos proposed for CC. They are not official CC logos (yet)  [http://x.narya.net/static/terry/cc_colors.png but may be in a future] [[User:JaroslawLipszyc|JaroslawLipszyc]] 14:59, 8 June 2006 (CEST)
+
When the program crashes you might see something like this:
  
== Current submissions ==
+
Program received signal SIGSEGV, Segmentation fault.
respectively, to indicate that this is a global movement; the open shapes are somewhat informed by the copyright "C", which is, in a way, subverted to express fluidity and constant change.
+
0x0000000000000000 in ??
 +
(gdb)
 +
To find out where the crash occurred (you might not always be able to), you should run:
  
[[Image:Swirly-logo-black.png|150px|]] [[Image:Swirly-logo-color.png|150px|]]
+
(gdb) backtrace
 +
or
  
:I like this design, but it doesn't work in small sizes.
+
(gdb) where
 +
or
  
:16px: [[Image:Swirly-logo-black.png|16px|]] [[Image:Swirly-logo-color.png|16px|]]
+
(gdb) bt
:32px: [[Image:Swirly-logo-black.png|32px|]] [[Image:Swirly-logo-color.png|32px|]]
+
Each does the same thing, and refers to the command backtrace.
  
:[[User:Angela Beesley|Angela Beesley]]
+
More advanced debugging with GDB
 +
When you run bt, you get a list of frames:
  
:: True. Could be made to work by making it a bit bolder, though I do prefer Marc's design below to my own.--[[User:Erik Möller|Erik Möller]] 00:09, 25 July 2006 (CEST)
+
Program receieved signal SIGTRAP, Trace/breakpoint trap.
 +
0x0000000000aa849f in SPDesktopWidget::createInstance (namedview=0x33a57a0) at ../../src/widgets/desktop-widget.cpp:1708
 +
1708    UXManager::getInstance()->connectToDesktop( toolboxes, dtw->desktop );
 +
(gdb) bt
 +
#0 0x0000000000aa849f in SPDesktopWidget::createInstance (namedview=0x33a57a0) at ../../src/widgets/desktop-widget.cpp:1708
 +
#1 0x0000000000aa8065 in sp_desktop_widget_new (namedview=0x33a57a0) at ../../src/widgets/desktop-widget.cpp:1659
 +
#2 0x000000000052430d in sp_file_new (templ=...) at ../../src/file.cpp:155
 +
#3 0x00000000005249ba in sp_file_new_default () at ../../src/file.cpp:226
 +
#4 0x000000000048865e in sp_main_gui (argc=1, argv=0x7fffffffe0b8) at ../../src/main.cpp:1071
 +
#5 0x0000000000487fab in main (argc=1, argv=0x7fffffffe0b8) at ../../src/main.cpp:789
 +
(gdb)
 +
These frames are all selectable:
  
: How about a mix of the swirly into "Libre" below? (i.e. instead of the butterfly) [http://freedomdefined.org/User
+
(gdb) frame 2
 +
#2 0x000000000052430d in sp_file_new (templ=...) at ../../src/file.cpp:155
 +
(If you have the same crash in a debugger better suited to your platform, you can use select frame to specify the address if GDB cannot find it.)
  
===Yin Yang===
+
Now you have activated frame 2. You can see the state of the processor registers in frame 2 and any local variables that the compiler has embedded in the debug symbols.
"Yin Yang" by Bernhard Schillo. The shape of the logo is one half of the yin and yang symbol. I believe, this is a good basis for this logo, cause it symbolizes contradictions, which generate reality. In this case the "C" (for Culture) coexists with the "uncultured" nature. Or another possible connotation: free culture and not free culture. Human culture of property can't exist without the "seed" of free culture contained in itself and without a strong free culture on the opposition. The forces have to work together.
 
The Logo also reminds to the Copyright-Logo. But the circle around the "C" is not a circle. The shape indicates, that something is given back.  
 
  
The logo should be elaborated if used. These are just my first ideas and drafts. I will think about it again when the discussion about the name is finished. And i hope, my english is understandable :)
+
(gdb) info locals
 +
doc = 0x27fbea0
 +
myRoot = 0x27f8850
 +
nodeToRemove = 0x0
 +
olddesktop = 0x0
 +
dtw = 0x7fffffffdd30
 +
desktop = 0x33a0710
  
[[Image:Free_culture_logo_signet.png|Free_culture_logo_signet.png]]
+
(gdb) print templ
[[Image:Free_culture_logo_var.png|Free_culture_logo_var.png]]
+
$1 = (const std::string &) @0x7fffffffddb8: {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x339fdd8 "/usr/local/share/inkscape/templates/default.svg"}}
 +
Stepping execution and breakpoints
 +
Sometimes, you would like to be in control of program execution instead of just letting it run wildly.
  
== Free Content Logo ==
+
You can tell GDB to stop when it reaches a certain function, upon a certain condition, or when a value in memory changes. These are known as breakpoints and watchpoints.
  
[[Image:Free3.png|left|Logo|thumb]][[Image:Freex.png|left|Logo|thumb]][[Image:glob.png|left|Logo|thumb]]
+
Stopping when a function is called:
  
<br clear="both">
+
(gdb) break Inkscape::UI::Tools::SelectTool::root_handler
 +
Breakpoint 1 at 0xf64ab7: file ../../src/ui/tools/select-tool.cpp, line 460.
 +
Stopping if any exception is thrown:
  
== Marc Falzon's logo ==
+
(gdb) catch throw
 +
Catchpoint 2 (throw)
 +
Stopping if a condition is met:
  
[[Image:Mfalzon-freecontent logo01--normal.png|left|Free content (01), by Marc Falzon - full size]]
+
(gdb) break ../../src/ui/tools/select-tool.cpp:629 if group_at_point == 0
Here is another logo proposal to illustrate the Free content idea : I made it with Inkscape, so the SVG source file is available.
+
Breakpoint 3 at 0xf657a5: file ../../src/ui/tools/select-tool.cpp, line 629.
 +
Stopping when a memory value changes:
  
[[Image:Mfalzon-freecontent logo01--typ.png|right|Alternative fonts for logo Free content (01)]]
+
(gdb) print desktop
 +
$2 = (SPDesktop *) 0x33a0710
 +
(gdb) awatch *0x33a0710
 +
Hardware access (read/write) watchpoint 4: *0x33a0710
 +
Listing breakpoints:
  
The rings - using the universal colors of the rainbow - represent some pieces of content (''free'' content illustrated by the "open" part) intertwined. For the label, I also provide some alternative fonts : the jury is free to choose another one in this list to replace the original font.
+
(gdb) info break
 +
Num    Type          Disp Enb Address            What
 +
1      breakpoint    keep y  0x0000000000f64ab7 in Inkscape::UI::Tools::SelectTool::root_handler(_GdkEvent*) at ../../src/ui/tools/select-tool.cpp:460
 +
2      breakpoint    keep y  0x00007ffff03a4a30 exception throw
 +
3      breakpoint    keep y  0x0000000000f657a5 in Inkscape::UI::Tools::SelectTool::root_handler(_GdkEvent*) at ../../src/ui/tools/select-tool.cpp:629
 +
        stop only if group_at_point == 0
 +
4      acc watchpoint keep y                      *0x33a0710
 +
Disabling breakpoints:
  
A "wiki logo" size version of my logo : [[Image:Mfalzon-freecontent logo01--wikilogo.png|Free content (01), by Marc Falzon - wiki logo size]]
+
(gdb) disable 4
 +
Deleting breakpoints:
  
Then a "browser-icon" size, for use as ''favicon'' : [[Image:Mfalzon-freecontent logo01--favicon.png|Free content (01), by Marc Falzon - favicon size]]
+
(gdb) delete 3
 +
Creating breakpoints that will only be stopped on once:
  
...hope you'll like it ! :-)
+
(gdb) tbreak foo::bar
 +
(gdb) tcatch throw
 +
Evaluating expressions
 +
If GDB can figure out what you are talking about, it can print pretty much anything. GDB also is immune to the private boundary of a class.
  
<br clear="both">
+
(gdb) print arc_context->arc
 +
$3 = (SPGenericEllipse *) 0x3afb610
 +
A handy feature to try to determine if a heap object still exists (hasn't been delete()d yet) is to use the new GDB command info vtbl:
  
: I love it! This is definitely the nicest one so far. From the fonts, I think I prefer the third one from the top. However, we should make sure that the fonts we use are available under free licenses. Could you do a grayscale version of the logo part so we know if it's suitable for print?--[[User:Erik Möller|Erik Möller]] 00:08, 25 July 2006 (CEST)
+
(gdb) print UXManager::getInstance()
 +
$4 = (Inkscape::UI::UXManager *) 0x3b6f1d0
 +
(gdb) info vtbl $4
 +
vtable for 'Inkscape::UI::UXManager' @ 0x136e500 (subobject @ 0x3b6f1d0):
 +
[0]: 0xbc7720 <Inkscape::UI::UXManagerImpl::~UXManagerImpl()>
 +
[1]: 0xbc7740 <Inkscape::UI::UXManagerImpl::~UXManagerImpl()>
 +
[2]: 0xbc81e0 <Inkscape::UI::UXManagerImpl::addTrack(SPDesktopWidget*)>
 +
 +
Here's what a delete()d object's vtable might look like:
  
'''This logo is not original.'''
+
(gdb) call 'operator delete'($4)
 
+
(gdb) info vtbl $4
 
+
vtable for 'Inkscape::UI::UXManager' @ 0x3f27f80 (subobject @ 0x3b6f1d0):
Beautiful. It remembers to me pac-man:
+
[0]: 0x190
http://web.candyland.cx/~bmfrankl/xlight/ftp/samples/pics/pac-man/pac-man.jpg
+
[1]: 0x20
--[[User:Telemaco|Telemaco]] 19:24, 2 August 2006 (CEST)
+
[2]: 0x3d91db0
 
+
[3]: 0x0
== Free Expression ==
+
[4]: 0x448d40 <g_free@plt>
 
+
This is a rough draft of an idea for a 'freedom of expression' logo by Mark Clements (registered as HappyDog).  A better paint-palette shape would be nice, and maybe a photographic image rather than the basic vector image I have used here. In fact, having said that I uploaded a quick mock-up with a photographic 'cloud' image.  Not great, but any image could be used if this was thought to be a good direction to go in. --[[User:HappyDog|Mark Clements (HappyDog)]] 02:35, 6 July 2006 (CEST)
 
 
 
[[Image:Freedom of Expression.png]] [[Image:Freedom of Expression - clouds.png]]
 
 
 
: This is pretty, though perhaps a little too strong visually. I'd prefer something more abstract which can be used equally well for art, music, scientific data, encyclopedic articles, and so on.--[[User:Erik Möller|Erik Möller]]
 
 
 
::I like the "yin yang" proposal above very much. Perhaps it is a little too naked right now, but it can probably be elaborated upon by a skilled person (perhaps the author himself) ;-)) I think the basic graphical concept is simple, clear and rather adequate. --[[User:Antoine|Antoine]] 16:12, 14 July 2006 (CEST)
 
 
 
 
 
 
 
== Telemaco's Logos ==
 
 
 
[[Image:logo59.png|left|Logo|thumb]] [[Image:logo59fi.png|left|Logo|]]
 
 
 
Butterfly FC.
 
Black over white and white over black.
 
No problem in gray scale.
 
Very good over t-shirt.
 
Simple and elegant.
 
 
 
 
 
<br clear="both">
 
 
 
== Copyleft ==
 
 
 
This is a draft I did earlier this year. For more information on the design see
 
 
 
http://www.openkhm.de/resserver.php?blogId=3&resource=free_locx.gif
 
 
 
== FKey ==
 
 
 
Start for this design was to break up the circle of usual copyright-sign via freedom
 
 
 
[[Image:Freekey_fc.gif]]
 
 
 
== Libre ==
 
 
 
[[Image:Libre-kt.png|Libre Emblem Button]] [[Image:Libre-kt-zh.png‎ |Libre Emblem Chinese version]]
 
<!-- http://freedomdefined.org/upload/5/5a/Libre-kt.png -->
 
 
 
Invitation to artists: add "Libre" logos/emblems to this page. 
 
Note: the proposed change from "Free" to "Libre" to disambiguate "free".
 
Libre can apply to free/libre culture, free/libre knowledge, free/libre software, etc. - or in fact any [http://communities.libre.org/ libre resources].
 
 
 
Also, feel free to contribute/discuss alternative language versions (e.g. 自由, etc.).
 
 
 
Links:
 
 
 
[http://libre.org Libre.org] [http://communities.libre.org Communities] [http://communities.libre.org/about/emblem/ Emblem]
 
 
 
Great work everyone :-).
 
 
 
Kim
 

Revision as of 22:46, 18 May 2021

We need a "Free Content" logo that can be attached to works covered by licenses which meet the conditions defined in the Free Content Definition. This logo should consist of:

  • a symbol or sign that is the same for both logos (minor variations allowed)
  • a label, probably "Free Content"

Logos must have a vector graphics source (SVG preferred), but must be uploaded in any format (PNG preferred). A good, free software vector graphics application which can handle SVG and PNG exports is inkscape. The dimensions are up to you as long as the images scale well. In order for your logo to be used, the logo itself must be free content with a reduced attribution requirement, but we can work this out with you once we have picked your Debugging Inkscape To get debug symbols for Inkscape, you'll probably need to recompile it. We use cmake and it has a Debug mode which produces debugging symbols:

cmake -DCMAKE_BUILD_TYPE=Debug ../ This assumes that you're building everything in a build folder and the repository root is the parent directory.

If you're looking an older non-cmake version, you'll need to enable the CXXFLAGS manually.

Debugging with GDB To start debugging Inkscape with GDB, load it up:

gdb path/to/inkscape If you want Inkscape to start right away and your version of GDB is new enough, you can start it with

gdb path/to/inkscape -ex r To keep gdb from paginating (splitting output from commands into pages, makes creating backtraces for bug reports more difficult) you can put this in ~/.gdbinit:

set pagination off To use GDB's text UI, you can run gdb -tui or gdbtui.

When the program crashes you might see something like this:

Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? (gdb) To find out where the crash occurred (you might not always be able to), you should run:

(gdb) backtrace or

(gdb) where or

(gdb) bt Each does the same thing, and refers to the command backtrace.

More advanced debugging with GDB When you run bt, you get a list of frames:

Program receieved signal SIGTRAP, Trace/breakpoint trap. 0x0000000000aa849f in SPDesktopWidget::createInstance (namedview=0x33a57a0) at ../../src/widgets/desktop-widget.cpp:1708 1708 UXManager::getInstance()->connectToDesktop( toolboxes, dtw->desktop ); (gdb) bt

  1. 0 0x0000000000aa849f in SPDesktopWidget::createInstance (namedview=0x33a57a0) at ../../src/widgets/desktop-widget.cpp:1708
  2. 1 0x0000000000aa8065 in sp_desktop_widget_new (namedview=0x33a57a0) at ../../src/widgets/desktop-widget.cpp:1659
  3. 2 0x000000000052430d in sp_file_new (templ=...) at ../../src/file.cpp:155
  4. 3 0x00000000005249ba in sp_file_new_default () at ../../src/file.cpp:226
  5. 4 0x000000000048865e in sp_main_gui (argc=1, argv=0x7fffffffe0b8) at ../../src/main.cpp:1071
  6. 5 0x0000000000487fab in main (argc=1, argv=0x7fffffffe0b8) at ../../src/main.cpp:789

(gdb) These frames are all selectable:

(gdb) frame 2

  1. 2 0x000000000052430d in sp_file_new (templ=...) at ../../src/file.cpp:155

(If you have the same crash in a debugger better suited to your platform, you can use select frame to specify the address if GDB cannot find it.)

Now you have activated frame 2. You can see the state of the processor registers in frame 2 and any local variables that the compiler has embedded in the debug symbols.

(gdb) info locals doc = 0x27fbea0 myRoot = 0x27f8850 nodeToRemove = 0x0 olddesktop = 0x0 dtw = 0x7fffffffdd30 desktop = 0x33a0710

(gdb) print templ $1 = (const std::string &) @0x7fffffffddb8: {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x339fdd8 "/usr/local/share/inkscape/templates/default.svg"}} Stepping execution and breakpoints Sometimes, you would like to be in control of program execution instead of just letting it run wildly.

You can tell GDB to stop when it reaches a certain function, upon a certain condition, or when a value in memory changes. These are known as breakpoints and watchpoints.

Stopping when a function is called:

(gdb) break Inkscape::UI::Tools::SelectTool::root_handler Breakpoint 1 at 0xf64ab7: file ../../src/ui/tools/select-tool.cpp, line 460. Stopping if any exception is thrown:

(gdb) catch throw Catchpoint 2 (throw) Stopping if a condition is met:

(gdb) break ../../src/ui/tools/select-tool.cpp:629 if group_at_point == 0 Breakpoint 3 at 0xf657a5: file ../../src/ui/tools/select-tool.cpp, line 629. Stopping when a memory value changes:

(gdb) print desktop $2 = (SPDesktop *) 0x33a0710 (gdb) awatch *0x33a0710 Hardware access (read/write) watchpoint 4: *0x33a0710 Listing breakpoints:

(gdb) info break Num Type Disp Enb Address What 1 breakpoint keep y 0x0000000000f64ab7 in Inkscape::UI::Tools::SelectTool::root_handler(_GdkEvent*) at ../../src/ui/tools/select-tool.cpp:460 2 breakpoint keep y 0x00007ffff03a4a30 exception throw 3 breakpoint keep y 0x0000000000f657a5 in Inkscape::UI::Tools::SelectTool::root_handler(_GdkEvent*) at ../../src/ui/tools/select-tool.cpp:629

       stop only if group_at_point == 0

4 acc watchpoint keep y *0x33a0710 Disabling breakpoints:

(gdb) disable 4 Deleting breakpoints:

(gdb) delete 3 Creating breakpoints that will only be stopped on once:

(gdb) tbreak foo::bar (gdb) tcatch throw Evaluating expressions If GDB can figure out what you are talking about, it can print pretty much anything. GDB also is immune to the private boundary of a class.

(gdb) print arc_context->arc $3 = (SPGenericEllipse *) 0x3afb610 A handy feature to try to determine if a heap object still exists (hasn't been delete()d yet) is to use the new GDB command info vtbl:

(gdb) print UXManager::getInstance() $4 = (Inkscape::UI::UXManager *) 0x3b6f1d0 (gdb) info vtbl $4 vtable for 'Inkscape::UI::UXManager' @ 0x136e500 (subobject @ 0x3b6f1d0): [0]: 0xbc7720 <Inkscape::UI::UXManagerImpl::~UXManagerImpl()> [1]: 0xbc7740 <Inkscape::UI::UXManagerImpl::~UXManagerImpl()> [2]: 0xbc81e0 <Inkscape::UI::UXManagerImpl::addTrack(SPDesktopWidget*)> … Here's what a delete()d object's vtable might look like:

(gdb) call 'operator delete'($4) (gdb) info vtbl $4 vtable for 'Inkscape::UI::UXManager' @ 0x3f27f80 (subobject @ 0x3b6f1d0): [0]: 0x190 [1]: 0x20 [2]: 0x3d91db0 [3]: 0x0 [4]: 0x448d40 <g_free@plt> …