Enlightened



  • @Carsten_Haitzler said:

    it's a term used in the past in what has been a majorly popular wm. you may be too young to have experienced it. i guess my language isn't hip and trendy enough for you . of course you would make a personal ad-hominem attack (i simply returned in kind) assuming it's a result of watching porn - and it's not. but you wouldn't be willing to admit this assumption of yours is both insulting and wrong based on simply a lack of facts and experience on your part.

    Holy shit are we even reading the same post?
    I've heard of brain worms, but this is ridiculous. I cannot see any reference to porn anywhere in the post are replying to.
    Sexual issues yes, porn no.

    @Carsten_Haitzler said:

    but your mind i guess jumps straight into the "gutter".

    Et tu.



  • OP mentioned that i watch lots of "rextube". I liked it up. You should too.


  • area_pol

    @Carsten_Haitzler said:

    it has been used in various products for many year

    I know about the wm. What's it adoption rate? Or, what's the adoption rate of efl in general in relation to other frameworks? It's pretty much non existent.

    @Carsten_Haitzler said:

    first elementary doc page - click getting started. there - first example. there. elm_win_util_standard_add(). docs not lying. docs are clear. elm_win docs clearly list this function. you make a big complaint about it being hard when the docs made it abundantly easy for you.

    Guess people were doing it manually which led to more manual code. That still doesn't negate the fact that you must do something counterintuitive which is not present in the rest of the world to see a window. Saying "because we do things differently" is not an excuse. It doesn't suddenly make it easier to use.

    @Carsten_Haitzler said:

    when there is no background and window has alpha - the empty area where no object is is transparent

    In other words, the window has an implicit background, which you called "empty area" and you can set its alpha plane. But you can't set the plain color at all. Kind of proves my point.

    @Carsten_Haitzler said:

    in efl the background has more than just 4 bytes for color - it's far more extensive thus costs more. having the background be any object you like means you don't have special cases where you have to figure out how to turn the window background off if you want translucency etc.

    Look how others did it. One framework allows you to set a full CSS to your window. Even to old Windows api allows you to do that without adding a custom background object.

    @Carsten_Haitzler said:

    try add a background to a table in gtk - want it green, or a texture, or an image? nope - widget is transparent - what was below shows through.

    I don't know how gtk tables in particular handle backgrounds, but I know I see widgets with background drawn without the need for any special treatment.

    @Carsten_Haitzler said:

    split your window into a 2x2 table and have each cell have a different background.

    Also doable in other frameworks without the need for some artificial background objects.

    @Carsten_Haitzler said:

    the window was visible - it just inherited previous framebuffer content due to the way x11 works.

    So much for abstracting away os and wm specific behavior. And I don't see that info in the doc you're referring to.

    @Carsten_Haitzler said:

    again - how is it a hack? the background is a visible object like anything else

    That's the problem right there. No one expects backgrounds being separate objects, because there was no need for it in any frameworks I've seen, despite making all those "features" you talk about available.

    @Carsten_Haitzler said:

    in x11 have a window with a shape input mask that is empty - watch your events go through it.

    So it's a x11 thing. Good to know efl can abstract those away like others do. Oh wait...

    @Carsten_Haitzler said:

    s". so a few "heck if i know" lines in one part of the documents makes them all repulsive?

    No, the thing I wrote makes it repulsive. Read what you're replying to.

    @Carsten_Haitzler said:

    no - it's not. the line from Evas.h from at least one of my tizen repositories for tizen 2.3.

    Try 2.2. And try to read again what I'm writing about. You made an api which works on the same type for different underlying objects. In short - you killed any type safety there was. There's no way to justify this.

    @Carsten_Haitzler said:

    without casting (which ends up bypassing type checking anyway) you can't do it. compiler will complain:

    It won't when you pass a pointer to the field, which is the point, as you don't have real inheritance. You get both type safety and no need for a cast. Why did you think about casting in the first place? You really are proving my point here - the compiler will complain about your code, because it's trying to work on something it shouldn't. And that's the essence of type safety and catching errors on compiler level, not runtime.

    @Carsten_Haitzler said:

    you get backtraces and crashes now.

    Make those messages print as much useful info without crashing as you can get and you'll see what it's all about.

    @Carsten_Haitzler said:

    guess to someone whose tagline on their user is "sex. i like it"

    You really don't understand discourse.

    @Carsten_Haitzler said:

    but you use it under the guise of "industry standard" and complaining when something is different, yet when something is the same as elsewhere and you don't like it - you pan it. not very consistent or logical.

    One more product doesn't make something a standard. Take a look at other frameworks, especially other languages.

    @Carsten_Haitzler said:

    nothing with not liking work - it's just not really worth the effort in C. it makes the api worse imho.

    Type safety makes the api worse? Um, ok.

    @Carsten_Haitzler said:

    you don't understand. you can't enforce constness there. you have to allow the data passed into the callback to be non-const because it HAS to allow modificatio

    So make it not const. As I said - one way or the other, but not both at the same time.

    @Carsten_Haitzler said:

    if you press shift+5, when 5 is hit, keyname is "5"

    I was referring to logical key and the string to be added. Read again,please.

    Will continue later.



  • @Carsten_Haitzler said:

    ```
    int main(int argc, char **argv)
    {
    Child *o = malloc(sizeof(Child));
    func1(o);
    func2(o);
    }

    
    <code><pre>
    int main(int argc, char **argv)
    {
       Child *o = malloc(sizeof(Child));
       func1(<ins>&o->parent</ins>);
       func2(o);
       <ins>free(o);</ins>
    }
    </pre></code>
    
    There, I fixed your `main()` so it compiles without warnings or casts.
    
    Oh, what's that, it's really annoying to go digging through an object's internal members to get a valid pointer to the base class? I suggest you try using a programming language which supports OO, then.
    
    (It's also not clear why you have `#include <string.h>` in your original listing, but that's kind of a side concern.)
    
    
    <small>Filed under: <a>also, holy shit, stop writing books in this thread

  • BINNED

    @Carsten_Haitzler said:

    if you press shift+5, when 5 is hit, keyname is "5", key is "percent" amd string is "%". it's documented there with even an exampe - shift+1 is exclamation. keyname would be "1" and string "!". docs are there.

    Well, that is not asking for trouble at all...

    Keyname: "B"
    Key: "left_bracket"
    String: "{"
    

    "Key" is a WAG, CBA to actually look for the docs page.

    I am no longer surprised that Game Maker (yes, I used that thing for educational purposes a long time ago, shut up) kept creating a new background every time I tried to start a new block of code: it was probably using the same kind of logic displayed here.

    Protip: Right Alt!==Alt Gr



  • @Onyx said:

    ```
    Key: "left_bracket"
    String: "{"

    <small>"Key" is a WAG, CBA to actually look for the docs page.</small></blockquote>
    
    I believe that technical term for it is a "left curlywig". (As contrasted to a "right curlywig" or "}")

  • BINNED

    @tar said:

    I believe that technical term for it is a "left curlywig". (As contrasted to a "right curlywig" or "}")

    Unacceptable! I will now campaign for it to get changed to left and right mustache!

    :{



  • Aren't curlywigs usually in the number row? I've never seen one under B.


  • BINNED

    <insert QWERTZ layout rant here>

    I'm not doing it again. Google and/or Discosearch of my posts involving QWERTZ if you're interested in many a facepalm.



  • Oh, I wasn't aware that QWERTZ was used in central-ish/south-ish/east-ish Europe. (Er, countries mostly north-west of Greece.) I thought it was for Germans only. The German layout has curlywigs in the usual position.


  • area_deu

    Okay. So let's do the industry standard asshole test then, shall we?

    A customer complains about how shitty your product is.
    You:

    • note the complaint, write a nice "thank you for your feedback" and try to improve your product
    • note the complaint, write a nice "thank you for your feedback" and ignore it
    • shrug it off and tell him to use another product then
    • tell everyone how stupid he is

    A customer complains that your documentation is shit and contains unprofessional phrases like "hell if I know".
    You:

    • invite the customer to send you his ideas to make it better
    • apologize for the unprofessional phrases and remove them
    • answer "oh yeah, that was a smart ass. But no one reads our documentation anyway, so we'll leave it. Also, you are too stupid to read."

    A customer complains that your product throws derogatory and inappropriate error messages.
    You:

    • apologize for the messages and correct them
    • silently correct some of the messages while telling the customer how grep works and how the messages did not contain the exact string he used in his complaint
    • lie to the customer about how those messages are widely accepted even at the management level

    Your customer invites you to hold a presentation about your product.
    You:

    • Apologize how shitty your product is and promise to make it better, asking for their input
    • Use irrelevant benchmarks to hide how shitty your product is
    • Tell them how stupid they are to ask for certain features for years, but present an half-assed hacked almost-implementation of them anyway while using immature phrases like "over our dead stinking corpses"

    DING DING DING! Is that a high score I see there on the board?

    Also: Fuck Discourse and its stupid markdown.



  • @Carsten_Haitzler said:

    it says it there - evas docs:

    char *keyname; /< the name string of the key pressed */
    const char *key; /
    < The logical key : (eg shift+1 == exclamation) */
    const char *string; /**< A UTF8 string if this keystroke has produced a visible string to be ADDED */

    if you press shift+5, when 5 is hit, keyname is "5", key is "percent" amd string is "%". it's documented there with even an exampe - shift+1 is exclamation. keyname would be "1" and string "!". docs are there. with example.


    How would you get an event for, say CTRL+SHIFT+K? This key combination does not produce any character? Is it possible to just get the modifier keys (CTRL and SHIFT in this example)?

    I searched around for docs and I found: http://docs.enlightenment.org/auto/efl/group__Evas__Keys.html but I also found https://developer.tizen.org/dev-guide/2.3.0/org.tizen.mobile.native.appprogramming/html/guide/ui/events_guide_ecore.htm for Tizen. How do these two relate? Does EFL on Tizen do key handling differently than the EFL you can get from enlightenment.org?
    The 3 fields from your post seem to be in the Ecore_Event_Key struct, but I only found a function that gives you modifier keys on the evas page. The function that seems to give you modifier keys is actually right at the top of the page and an example usage is in the "details" (sorry, there is a link limit so I couldn't link directly) part of the page (and not near the actual function). The function does not do anything with "ev" (which I assume is the actual key event) so I'm not sure it does what the example strongly suggest it does. Is "ev" Ecore_Event_Key and I just can't find it on enlightenment.org?



  • It's foolish to expect any single person to have the courtesy of a big company with a dedicated PR department -- especially when you are not paying them.


  • area_deu

    "You get what you pay for. You want better docs, pay me or do it yourself" would have been a perfectly acceptable answer for an open source project. No need to go out of his way to be an asshole about it.



  • I believe that problem is with low quality docs, sample code snippets and Not enough documented app examples.

    A new EFL user doesn't understand why bg object exists. User does not know EFL history, so if you tell that SWALLOW was used in now-dead fvwm - I do not care about name origin, if I use EFL i want to know that SWALLOW exists and how to use it. We live in 2015 and I do not care about 20-years of development. WinAPI is somehow usable, can provide classes without wild casting - and WinAPI is better documented than EFL.

    And now some examples of poorly documented parts:

    Functions that deal with parts of type swallow and swallowed objects.

    A important feature of Edje is to be able to create Evas_Objects in code and place them in a layout. And that is what swallowing is all about.

    Swallow parts are place holders defined in the EDC file for objects that one may want to include in the layout later, or for objects that are not native of Edje. In this last case, Edje will only treat the Evas_Object properties of the swallowed objects.

    This is full description of what SWALLOW is. As new EFL user, that reads this for first time in his life - I do not understand anything. I need to be experienced EFL user to understand EFL. This is really problem. And do not tell me that I am idiot - yes, most of EFL users can be considered idiots and as EFL owner, you should deal with this without insulting anybody. I am not your friend so do not call me an idiot.

    Another: http://docs.enlightenment.org/auto/elementary/efl_thread_1.html
    This example does something - OK. But there is almost no comments or tutorial on how this was created - I need to read whole code and sometimes search for some EFL API (like evas_object_smart_callback_add - this is not connected, while elm_win_util_standard_add is). I want to know how to create this sample by hand and this sample does not have almost any description.

    elm_win_util_standard_add - Description is "Adds a window object with standard setup." and is extended later by "This creates a window like elm_win_add() but also puts in a standard background with elm_bg_add(), as well as setting the window title to title. The window type created is of type ELM_WIN_BASIC, with NULL as the parent widget.". Great! But how I can get that bg object added by util_standard_add? elementary/group__Bg.html does not say anything. And what is "like elm_win_add"?

    About EFL performance:
    https://phab.enlightenment.org/phame/live/1/post/simple_efl_vs_qml_comparison_again/
    If there is comparison EFL vs QML I feel like comparing old Fiat 125 with newest Ferrari model and somebody says "but Fiat is lighter!" while almost all parameters says that Ferrari is better. And I believe that non-QML version of minesweeper can be even faster and consume less memory - pure intuition. And this benchmark is outdated - it is almost 2 years old and by common sense is now invalid - both Qt and EFL were improved and I'd like to see current permormance status.

    And last: EFL creator wrote a video player in a weekend using EFL. As Qt noob I can write video player in 30 minutes using Qt documentation only (without looking at any samples). The same app takes much longer to develop in EFL and this is sad reality. And if EFL creator want to use "Core object model EO" using some magic hash instead of references/pointers just because EFL users have problems with using EFL correctly I am asking what drugs Rasterman use. Each EO deference is more expensive than heavyweight Java and in the same time Rasterman says "EFL is lightweight".

    EFL does not needs C++, it needs sanity. And complexity reduces sanity.


  • BINNED

    @sloosecannon said:

    Had too many WTDWTF tabs open

    Well there is your :wtf:


  • :belt_onion:

    @ChrisH said:

    "You get what you pay for. You want better docs, pay me or do it yourself" would have been a perfectly acceptable answer for an open source project. No need to go out of his way to be an asshole about it.

    Even then, having bad docs reflects poorly on your product. I personally make several free and open source projects, and I make sure that my documentation is fully present and useful. Why? Because I take pride in my work and want anyone using my code to think it was written by someone who isn't completely incompetent. I understand that my projects are nowhere near the size of a framework like this, but documentation is still very important.



  • @blakeyrat said:

    Detailed Description
    Event sent when the window is damaged.

    Hey I just realized the docs say "event", and the code says "signal". WTF!



  • @hhaamu said:

    It's foolish to expect any single person to have the courtesy of a big company with a dedicated PR department -- especially when you are not paying them.

    Except he's an employee of a big company that does have a dedicated PR department -- and evangelism department -- and he is getting paid. According to his slide deck.



  • Guys don't be too upset with Carsten_Haitzler, he obviously is stressed-out about how non-working shift key.

    @Carsten_Haitzler said:

    try add a background to a table in gtk - want it green, or a texture, or an image? nope - widget is transparent - what was below shows through. having a bg allows you to place it anywhere in your window - eg split your window into a 2x2 table and have each cell have a different background. works the same way as the window bg so it's consistent.

    Wow! You can use this awesome framework to build some ugly-ass APIs! I bet it even has a built-in setting to show yellow-on-bright-purple text.

    @Carsten_Haitzler said:

    due to the way x11 works.

    @Carsten_Haitzler said:

    in x11

    X11 sucks ass, buddy. You shouldn't be tying yourself to that bullshit.

    @Carsten_Haitzler said:

    i guess to someone whose tagline on their user is "sex. i like it" you'd probably think about sexual issues first. it's obviously the way your mind thinks. you may not have heard of children and yes - they can be naughty and have and still are spanked when they misbehave. but your mind i guess jumps straight into the "gutter".

    OH SNAP!

    Seriously, I wanna know if you've ever worked a normal 9-5 job in your life.

    @Carsten_Haitzler said:

    it's a term used in the past in what has been a majorly popular wm. you may be too young to have experienced it. i guess my language isn't hip and trendy enough for you .

    OH SNAP!

    Confusing terminology is bad. It doesn't matter how old people are, or what other products they've used, the word "swallow" makes no goddamned sense here. If you picked it, you made a bad decision.

    @Carsten_Haitzler said:

    perhaps you should read documentation, actually fact-check and maybe gain a better grasp of basic english

    Way too easy.


  • ♿ (Parody)

    @blakeyrat said:

    OH SNAPSPANK!

    ETFY



  • p.s. I can see that Sony used EFL in PS3. Is EFL used in PS4 too?



  • @hhaamu said:

    It's foolish to expect any single person to have the courtesy of a big company with a dedicated PR department -- especially when you are not paying them.

    It would have taken FEWER resources away from the project for him to just ignore this thread, instead of writing 3 novels in it about how awesome his baby is. It also would have given a better impression of the product. Just FYI.

    Or are you saying he needs a dedicated PR department to tell him, "hey, moron, what are you doing here? How does this help anything? Get a fucking grip!"

    @hhaamu said:

    especially when you are not paying them.

    We're not, but somebody is. Also, I'm pretty sure Samsung does have a dedicated PR department. They sell quite a few consumer products.



  • If it were that PR department speaking, they'd give that "We value your input but aren't going to do a damn thing about anything you mentioned" feel-good response.

    Also, I'm treating EFL as an open source project, not something owned by Samsung. Yes, I know, Samsung has paid for its development for the past five-ish years, but that's only a third of its existence.



  • @WhiteKnight said:

    WinAPI is somehow usable, can provide classes without wild casting - and WinAPI is better documented than EFL.

    And note that it is the shittiest of all existent windowing APIs. (Well, I thought so until this week.)



  • @blakeyrat said:

    Or are you saying he needs a dedicated PR department to tell him, "hey, moron, what are you doing here? How does this help anything? Get a fucking grip!"

    I was saying that the responses ChrisH was hoping for reeked of a PR department's feel-good style, not of an actual engineer who knows the product.


  • area_deu

    @hhaamu said:

    I was saying that the responses ChrisH was hoping for reeked of a PR department's feel-good style, not of an actual engineer who knows the product.

    I actually know quite a few engineers who are not assholes. And some of them even run their own open source projects.



  • @hhaamu said:

    Also, I'm treating EFL as an open source project, not something owned by Samsung.

    Ok; I'm gonna treat it like a 1930s plate-spinning novelty act.

    https://www.youtube.com/watch?v=gqg3l3r_DRI

    Look at those plates go! I love EFL! OMG that one's on the end of a pole! Oh shit, it's gonna drop-- phew, he got to it in time.


  • Discourse touched me in a no-no place

    @Onyx said:

    Unacceptable! I will now campaign for it to get changed to left and right mustache!

    :{

    BITCH! COMPLAIN! BEMOAN!

    }:


  • area_deu

    @hhaamu said:

    If it were that PR department speaking, they'd give that "We value your input but aren't going to do a damn thing about anything you mentioned" feel-good response.

    That would STILL be better than "fuck you, you are too stupid and not worthy using my product".

    Also, I'm treating EFL as an open source project, not something owned by Samsung. Yes, I know, Samsung has paid for its development for the past five-ish years, but that's only a third of its existence.
    If Samsung really paid someone for further developing this piece of shit without any apparent quality control whatsoever, they deserve everything they get.

  • BINNED

    @ChrisH said:

    "You get what you pay for. You want better docs, pay me or do it yourself" would have been a perfectly acceptable answer for an open source project. No need to go out of his way to be an asshole about it.

    @blakeyrat should stop by to call you an idiot shortly.

    A better approach would be to put a "How to Help" page on the site and mention there that they need people to write documentation. They may have done that; I CBA to go find out.

    @blakeyrat said:

    Or are you saying he needs a dedicated PR department to tell him, "hey, moron, what are you doing here? How does this help anything? Get a fucking grip!"

    From what I've seen so far on this thread, that's probably a good idea. See below.

    @hhaamu said:

    If it were that PR department speaking, they'd give that "We value your input but aren't going to do a damn thing about anything you mentioned" feel-good response.

    This guy knows how it's done.


  • area_deu

    @antiquarian said:

    A better approach would be to put a "How to Help" page on the site and mention there that they need people to write documentation.

    That's why I called it "acceptable", not "ideal".



  • Just FYI, all you guys who are fans of open source software, you should be driving over to Carsten_Haitzler's house with a big-ass baseball bat, because this is exactly the kind of idiot who gives you all a bad name, and also exactly the kind of idiot who lays the foundation for my "all open source software is a shitty mess" ideas.

    Which have been strongly reinforced recently.

    Because all open source software is a shitty mess.


  • BINNED

    @ChrisH said:

    That's why I called it "acceptable", not "ideal".

    Some here would say that it's not even acceptable.


  • area_deu

    @antiquarian said:

    Some here would say that it's not even acceptable.

    I might have slightly lower-than-normal standards.




  • area_deu

    @flabdablet said:

    Will it blend?
    http://youtubedoubler.com/?video1=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dxr3tgPtOcv0&start1=38&video2=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DQrc1ZLW7aMI&start2=26&authorName=flabdablet

    <table cellpadding="0"
    cellspacing="0" border="0"><tr><td width="425" height="355"
    valign="top">
    <object width="425" height="355"><param name="movie"
    value="http://www.youtube.com/v/xr3tgPtOcv0&start=38&autoplay=0"></param><param
    name="wmode" value="transparent"></param><embed
    src="http://www.youtube.com/v/xr3tgPtOcv0&start=38&autoplay=0"
    type="application/x-shockwave-flash" wmode="transparent" width="425"
    height="355"></embed></object>
    </td><td width="425" height="355" valign="top">
    <object width="425" height="355"><param name="movie"
    value="http://www.youtube.com/v/Qrc1ZLW7aMI&start=26&autoplay=0"></param><param
    name="wmode" value="transparent"></param><embed
    src="http://www.youtube.com/v/Qrc1ZLW7aMI&start=26&autoplay=0"
    type="application/x-shockwave-flash" wmode="transparent" width="425"
    height="355"></embed></object>
    </td></tr> <tr><td colspane=2><span
    style="font-size:8pt; font-family: Arial, Helvetica, verdana,
    sans-serif;"><a
    href="http://youtubedoubler.com/?video1=xr3tgPtOcv0&start1=38&video2=Qrc1ZLW7aMI&start2=26&authorName=flabdablet">YouTube
    Doubler</a></td></tr> </table>


    No.



  • @flabdablet said:

    Will it blend?

    You don't understand my humor at all, do you?

    Look, if you're not making a joke about anything in this thread and you just wanna do "fun YouTube joy time with flabdablet", go fuck-off to another thread. Thank you.


  • BINNED

    @blakeyrat said:

    Just FYI, all you guys who are fans of open source software, you should be driving over to Carsten_Haitzler's house with a big-ass baseball bat, because this is exactly the kind of idiot who gives you all a bad name, and also exactly the kind of idiot who lays the foundation for my "all open source software is a shitty mess" ideas.

    I'll rather call his shit out reasonably and calmly.

    If I'm already considered an idiot, I may as well be an idiot that doesn't use shit slinging as his only argument.


  • BINNED

    @Onyx said:

    I will now campaign for it to get changed

    I'll show my appreciation with a laughing stache-dude :{ not to be confused with the sad stache-dude :{


  • ♿ (Parody)

    @blakeyrat said:

    Just FYI, all you guys who are fans of open source software, you should be driving over to Carsten_Haitzler's house with a big-ass baseball bat, because this is exactly the kind of idiot who gives you all a bad name, and also exactly the kind of idiot who lays the foundation for my "all open source software is a shitty mess" ideas.

    Dear blakeyrat,

    We received your concern troll and plan to act on it very soon.

    Regards,
    The World



  • @blakeyrat said:

    You don't understand my humor at all, do you?

    ... go fuck-off to another thread.

    https://www.youtube.com/watch?v=Tum4XL9x_Ns&t=8m20s



  • Me, 4 days ago: "What's with all these posts in the Enlightened thread? Meh, probably some politics crap, who cares."

    Me, 2 hours ago: "I'm bored. Sigh, fine, whatever, let's see what's it this time, religion, or abortion, or..."

    "..."

    "... well, fuck."



  • You think you're funny?!? .... oh ... Um. OK. Actually, that explains a lot.


  • area_pol

    @Carsten_Haitzler said:

    you modify a layout by it modifying itself - you emit a signal, send a message and the layout reacts. layouts are intended to be "opaque replaceablae data blobs". they are not bits of code just forcing you to write them in some strange and unknown new language...

    I know what a layout is and I know you can use swallows to substitute all blanks with dynamically created widgets. Great, except you can't make changes to the actual layout and things it contains on the fly. Why can't I just create a view in a design program (or in the code) and manipulate it as I wish, as other frameworks do? That only adds rigidity and burden.

    @Carsten_Haitzler said:

    it's a term used in the past in what has been a majorly popular wm. you may be too young to have experienced it.

    So one dead wm terminology is enough reason to keep it in 2015? Especially when literally no other framework uses it. Even when it was alive, there's no reason to attach yourself to another product, when you're designing pretty much something parallel. Calling it "WIDGET_CONTAINER" would be as valid 20y ago as it would be now.
    BTW. I took a look at fvwm and I'm far from too young to experience it. Somehow, I'm just glad I haven't.

    @Carsten_Haitzler said:

    widget_container is far longer

    So having to type few letters more is a valid reason, which outweighs clarity and consistency (no, there's nothing consistent between the terms "widget" and "swallow")? And saying the docs explain SWALLOW = placeholder, doesn't make it a better name out of a sudden. Again - ask a random non-EFL developer what he thinks a SWALLOW is and listen carefully how he says anything but "a placeholder for a widget in an immutable layout".

    @Carsten_Haitzler said:

    i checked. edje_cc exits with non-zero codes/ almost the exact same code as currently in upstream. it's not edje_cc existing with 0 on error - it's something else, but you are willing to blame edje_cc as opposed to look into it and maybe accept you are wrong.

    I'm seeing edje_cc running and an exit code of 0 afterwards. As a user, I don't care about the internals. I see a tool which doesn't work as expected. As I said eralier - don't mistake users for contributors. As programmers, we are your clients and expect your product to work without hacking into it. If someone broke it, fix it or report it further down. Consider that a bug report from me. Let's see how you handle it.

    @Carsten_Haitzler said:

    it's a basic concept - create it then delete it when done (or hand it off to another object to own).

    C has no notion of memory ownership and you can't enforce any. You never know if a given object was "handed off to another" or if you own it. Let's take an example: http://docs.enlightenment.org/auto/elementary/group__Genlist.html#ga8ed57b132625816f21ffaf49b60906be

    There we have a parameter: *const Elm_Genlist_Item_Class itc. There is absolutely zero info of who owns it. Is it the calling code? Or does the genlist store the pointer somewhere and free it later? You don't know. Of course, some advocate the absurd notion of const objects are not passed as owning, despite immutability has nothing to do with memory ownership. So a developer's best guess is that it's not owned by genlist. Except that it's wrong and it's actually a non-threadsafe shared object, which should be created and freed by special functions. Does it say that in the docs for that function? No. So maybe for the struct itself?

    Detailed Description
    Gengrid or Genlist item class definition.
    field details.

    Nope. You actually have to dig through the example code to notice that. There's no info in either the function or the struct docs, and it violates the C notion of const = owned. In other words, in order to know it you have to assume the docs and the API are incomplete/lying and further code inspection is required.
    Bonus WTF: the genlist remembers the pointer anyway, even when it has he ability to check if it was allocated by the magic function, by checking some value inside the struct.

    @Carsten_Haitzler said:

    no - you're stuffing verbose "printfs" through a serial port straw most likely. yes - it does allocations. the actual allocations don't appear in profiles. at all. it's more init, set up of state and event handling. i've done the profiling. the assumption is that you will immediately retun some data - you won't open and parse a file, do a sql query or anything else - you return the data (eg label string) you have in memory prove to me with an actual profile (perf, oprofile - something) that the allocations are an actual serious issue. i have looked many times - they are not.

    We also looked - they are. The difference is, we looked at the real product in action. Especially the callback which returns item text label, which is then freed by EFL. Swipe with just a 100 items and you'll have 100 allocations and deallocations on that alone.

    @Carsten_Haitzler said:

    it's not disabled - not in any default build. if someone --disabled the magic checking at compile time of evas - then talk to them. looking at the spec file for the tizen evas build here - it's not disabled. so i doon't know what you are going on about unless you or someone else provided you with a custom evas build to turn this off and you used it - then blame the one who turned it off, not efl.

    I blame EFL for violating type safety, which would invalidate any needs of checking magical memory bytes at runtime, which might or might not be there.

    @Carsten_Haitzler said:

    wrong. efl does enforce type safety - runtime for sure

    Runtime in C = no type safety. Period. Type safety is when the compiler scream at you for being stupid, not when your app wants to spank you and calls you a bitch.

    @Carsten_Haitzler said:

    how does that say the number of objects is limited to 512? how? in what way at all does it even HINT at that?

    More that 512 objects = chance of false positive = use more than 512 objects and you'll have much fun with some internal hash collisions. To prove my point, let me quote you:

    @Carsten_Haitzler said:

    yes - it wraps around. so that means if you get past the table + row check and there is an obj an extra 1 in 512 generation count check is done - that is the false positive if you get past this (and if the object is of the wrong type then you have another check that will make it not crash (or optionally crash if you set an env var)).

    @Carsten_Haitzler said:

    when you are attacked - eg being accused of spending time watching port and using terms from that in api names, then yes - i'll respond in kind.

    No one attacked you, but described your shitty product. Also, you suddenly don't like "naughty" jokes? But you said you and the management are fine with them!

    @Carsten_Haitzler said:

    i have taken note of your racist generalizations of things like "asian people who know shit about programming".

    I don't give half of shit about their race/nationality/whatever. I care about the extra privileges they get and their utter incompetence. I've never worked with anyone from HQ which was remotely competent in programming. Other teams have the exact same issue. And when they are allowed to push any code they want to any branch they want without code review, and we are actually forbidden of telling them of any errors in their code, because they might get offended, things go downhill fast. If anyone is to blame for discrimination, it's the management, which looks at nationality first, obedience second and competence last. Want to make better software? Try to convince people there that communication, planning and discussions are good at software development. Good luck and stop trying to derail the topic with your insults.



  • @NeighborhoodButcher said:

    More that 512 objects = chance of false positive = use more than 512 objects and you'll have much fun with some internal hash collisions. To prove my point, let me quote you:

    Oh. my. god.
    This has gone on for long enough.

    I know nothing about Enlightment, but Mr. SPANKer is obviously talking about a scheme where every valid object id is always interpreted correctly, while invalid (e.g. freed) object ids have a small chance to be misinterpreted as valid object ids instead of invalid.
    This is "safer" than invalid C pointers, which have a very high chance of being misinterpreted as valid ones. And it goes without saying (*) that it's still far less safe than real languages where invalid references to objects just don't exist.

    You see these sort of schemes all the time if you're well-versed in pure C code.
    They're about as embarrassing as they sound, but they work.

    (*) - If it doesn't go without saying for you, please do not respond to my post. Thank you.



  • If pointers are used in invalid way, it is always programmer's fault, never EFL. Assuming that EFL is written correctly. So if I pass bad object, I am bad programmer - sad reality of C world that C programmer should accept. However if I am using native programming language I am expecting type system to not be dynamic like javascript. Meanwhile there is wild dynamic type system that looks much slower than java (and java at least has some JIT, so it is runtime optimized. C is never runtime optimized). But low programmer skills is never an excuse to creating hashed EO shit.

    C-styled API will be always more difficult to use than higher-level language and will be more expressive and this is OK due to C nature. But I doubt that C is good language for GUI programming in 2015, where users expect more and more advanced UI mechanisms. And with HTML or QML programmers can quickly create advanced and animated UI that can be easly changed on request (and HTML is an industry standard). C/EFL/EDJE is not solution for such stuff unless you want to freeze your UI design plans or you have huge amount of resources (time, money, etc.) available.


  • area_deu

    @NeighborhoodButcher said:

    And when they are allowed to push any code they want to any branch they want without code review, and we are actually forbidden of telling them of any errors in their code, because they might get offended, things go downhill fast. If anyone is to blame for discrimination, it's the management, which looks at nationality first, obedience second and competence last.

    Sounds like you have enough material for a whole series of WTFs. Keep them coming.



  • @Carsten_Haitzler said:

    if people were to actually do things like report this as a bug, it might be nice

    Why, because then you get to ignore them, as your presentation gleefully claimed to ignore C++ programmers asking for support?



  • @Kian said:

    Why, because then you get to ignore them, as your presentation gleefully claimed to ignore C++ programmers asking for support?

    To be fair, the Enlightenment team don't just ignore people reporting bugs. Sometimes they're actively hostile to them on the internet as well...


Log in to reply