Slashdot Mirror


User: Havoc+Pennington

Havoc+Pennington's activity in the archive.

Stories
0
Comments
66
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 66

  1. Projects are worked on, not joined on Good Ways To Join an Open Source Project? · · Score: 1

    My standard advice: http://ometer.com/hacking.html

    Anyway, you don't join a project - there's no membership list, and there's nobody who will tell you do this or do that or whatever.

    What you do is get on the forums (usually mailing lists, IRC, and bug tracker), start following the discussions, and help out where help appears to be needed. That's it.

    If you wait for hand-holding or permission you won't get anything done. You have to be persistent and just start doing stuff.

  2. Re:100% Serious (don't get mad)... on Red Hat Launches Entertainment-Centric 'Mugshot' · · Score: 4, Informative

    We're trying to do a variety of things that might appeal to people who aren't using Linux or open source already. There isn't necessarily a strong connection between all of them (though there is some "platform" that we've been sharing among features so far, such as an XMPP server connecting everyone's desktop, friend lists, groups, etc.)

    There are two very specific features we already started on:
    http://mugshot.org/links-learnmore
    http://mugshot.org/radar-learnmore

    So those are very specific, but the project is open to all kinds of stuff, no need to artificially limit it.

  3. Don't worry about it on Computer Science Curriculum in College · · Score: 1

    Even if your schedule had a bunch of more immediately practical classes (XML, Java, blah blah) they'd be obsolete soon enough. Look at college as a place to learn the more unchanging basics (e.g. algorithms, how-a-programming-language-works, etc.) and broaden your mind beyond computers (take classes you're interested in).

    Learning to write may be the most useful software development skill you can learn in college, more so than a lot of the more specialized CS or software engineering classes; most any class with papers (vs. problem sets) will help you learn to write.

    The place to learn the syntax of a particular language, or a new API or technology, is from books. Or online docs. Read as much as you can. Also read about things like interaction design, development methodology, coding style, etc. not just technical manuals. There are tons of people on the internet dishing out advice to new programmers, for example http://joelonsoftware.com/ is popular.

    As you read, you have to write code. Try to use what you learn, and try to read things that address problems you're having. This will make the reading "stick."

    A tough thing for new programmers is to realize that you have to write tens of thousands of lines of code before you stop sucking. Maybe 100K lines or more. No matter how smart you are. That's going to take a couple of years of daily practice, and lots of smart people aren't used to needing that much practice.

    You're way better off putting a big dent in this _before_ you start your first job. Especially because many entry-level jobs have you write the wrong kind of code. It's best if you try to design and architect all your nonworking, terrible practice code, but your first employer won't let you. So even when you get a job, if you want to get good at programming you should probably have a weekend project that's more "from scratch" with you in charge, vs. the more common first job of maintenance programming directed by others.

    To me I'd really want to hire someone who could show a lot of code already written in spare time. It means they have a lot of their initial tens of thousands of lines of practice behind them, and it shows that they really like the work and are capable of doing it.

    Sample work (and practical experience) will make a much bigger difference in interviews than which classes you took. If you have good sample work you don't even need a degree in a computer-related field.

  4. How does the server work? on Ask Questions of the World of Warcraft Team · · Score: 1

    What software technologies are used - OS, language, database, etc.? What kind of hardware is needed to run a realm? What programming tricks are involved in making this thing scale up to so many users? What limits the scalability - i.e. when a realm has too many users at once, what's the performance bottleneck that creates the limit? How would you architect things differently if you started over?

  5. Re:Not always true on Havoc Pennington on GNOME 3's Future · · Score: 5, Informative

    Read my blog post - it's a reply to _other_ people proposing GNOME 3, I'm saying "_if_ we did a GNOME 3, here is how it would make sense and what it would look like"

  6. Re:Ditch the dependencies and deprecated code on Bounties for Gnome Optimization · · Score: 1

    You can't make the daemons optional because the desktop environments are not a set of independent apps, they are a "swarm of processes" that work together. Some of the processes have graphical representations (such as the panel and window manager) and some don't. But all of the processes _do something_, they aren't just sitting there for the hell of it.

    So saying "make the daemons optional" is no different from saying "make the window manager optional" - you have to answer the question "what is going to do the thing that the daemon did"

    What would "make the window manager optional" mean? Either it means you can swap in any WM (as you can), or it means you suck the WM function into an existing process - old WMs like WindowMaker essentially put the whole desktop in one big process.

    In fact, in essence gnome-settings-daemon is a "catch-all" daemon that does a bunch of unrelated/random stuff to avoid having tons of separate daemons. So some of the "sucking the functionality in to a single process" has already been done.

    You refer to gconfd and gnome-settings-daemon specifically I think because those daemons don't have GUIs and thus it isn't user-visible what they do; but that doesn't mean they do nothing. Stuff virtually everyone does care about would break if you removed them.

    For example, the control center will not even think about working with old-type UNIX config files, because when the control center changed a setting the rest of the desktop would not know about the change. In most cases this would mean the change would not take effect. In KDE this is addressed through the dcop daemon rather than a special config daemon, but there's still a need for a daemon here.

    gconfd also keeps a shared cache of all the settings, so guess what... it *reduces* memory usage overall.

    The desktop need not be implemented in this "swarm of processes" way - desktops as diverse as Enlightenment and Lotus Workplace use a single-process approach. But there are advantages to multiple processes.

  7. Re:Not accurate on Red Hat To Drop Boxed Retail Distribution · · Score: 3, Informative

    The headline is inaccurate. The information that will be released on Monday is regarding the development direction of Red Hat Linux. Further information on the retail product line will be forthcoming closer to the product launch plan this fall.

    Havoc Pennington

    Red Hat, Inc.

  8. Tons of choice on Gnome 2.2 Released · · Score: 2, Insightful

    Right now on UNIX/Linux you can choose:

    - advanced user environment A
    - advanced user environment B
    - advanced user environment C
    - advanced user environment D ...

    and guess what, all the choices eventually grow
    to be configurable so that they act like any of
    the other choices, or indeed like any hisotrical
    OS ever. So useful. What a good way to
    spend our time, writing multiple "design your own UI" construction kits.

    Maybe it's time for something different.
    If people want to work on developing it,
    who are you to tell them how to spend their time?

    You are free to work on developing your own
    "advanced user environment E" if you don't have
    enough options in that area yet. Or free to create add-ons or partial replacement apps for any
    existing environment. Isn't open source great?

    If you want to understand GNOME direction though,
    I'd suggest some good books, such as
    "User Interface Design for Programmers,"
    "The Inmates are Running the Asylum,"
    "Designing from Both Sides of the Screen,"
    etc.

    Technical users are so quick to assume that all software should be written for them, and that despite having zero expertise in interaction design they know exactly how a GUI should be (it should be exactly like the GUI I got used to in 1992, darnit! must... not... learn... new... things...)

    The historical situation of 1001 choices, as long as they are all confusing and hard to use, is a good way to keep free software
    limited to 0.5% of the users in the world.
    It's hypocrisy to brag about choice when
    all the choices are the same.

    It's not like there's any danger that there won't
    be enough hyper-configurable advanced user features and environments available. Somehow,
    I have faith that we're safe there. So why
    not let just *one* project try something different
    without whining about it endlessly.

    All that said, I don't even agree with the premise
    that geeks only like the hyper configurable environments; OS X is pretty
    popular with the geek crowd these days.
    As is GNOME 2, for that matter.

    In any case, I guess we'll see in a few years
    how it all turns out. My prediction is that
    there will be lots of environments and add-ons available,
    for different target audiences, and everyone
    will be happy.

  9. Re:Startup notification on Gnome 2.2 Released · · Score: 1

    GNOME 2.2 uses a common spec agreed on between
    GNOME and KDE, the common spec was primarily
    designed by Lubos Lunak of KDE and is similar
    to what KDE 3.1 uses.

    The older attempts are things that replace
    XMapWindow() via LD_PRELOAD and things like that.

  10. Re:'only' broken with KDE/Bluecurve? on LinuxWorld Exhibitors' Responses to Slashdot Questions · · Score: 1

    The answer as quoted is not correct.
    Bluecurve is a theme, and some default
    configuration options. It does not to my
    knowledge break anything. A theme + config options
    should not even be able to.

    We introduced a bug, renaming .desktop files,
    but that was since fixed and I would not categorize it under the name "Bluecurve" anyway, it was just a random bug.

    Here is a not-affiliated-with-Red-Hat link that
    catalogs everything in some detail:
    http://www.cyber.com.au/users/mikem/redha t8kde.htm l

    But in general, please send specifics if anything is broken; we have rapidly fixed everything we've
    been told about or discovered.

  11. Alternative hypotheses on Usability and Open Source Software · · Score: 5, Insightful

    They are investigating whether poor usability
    in most open source software is connected to
    open source licensing and open source development methodology.
    That is, does open source = poor usability.

    Two alternative explanations for poor usability
    should be explored (and need to be disproven
    before blaming "open source") IMO:

    - by historical accident, most open source
    developers are unix programmers who don't
    know a UI from a hole in the ground.

    i.e. the argument is that more UI-attuned
    open source communities can do just fine
    with the open source licensing/methodology.

    - open source GUI software is simply quite
    immature. We're just maturing on the server
    side; the UI is still comparable to Linux 2.0 or
    earlier, not Linux 2.6.

    Lots of our GUI software is very newly-written.
    And a lot less people are working on it than
    are working on the kernel and Apache and
    so on.

    This will change as the userbase grows.

    I also don't take it as a given that commercial
    software is hugely better; some important
    commercial packages (such as Quicken) have
    pretty awful interfaces. Though some
    are very nice, for sure.

  12. Re:Wow.. on GTK+ 2.0 · · Score: 4, Insightful

    Some quick bugzilla.gnome.org queries would demonstrate with hard evidence that you are
    incorrect, if anyone were interested in reality.
    Wait, this is Slashdot. ;-)

    (Apparently I'm in an answer-the-trolls mood...)

  13. Re:Wow.. on GTK+ 2.0 · · Score: 2

    Well actually at least half the GTK bugs are found when users report them to bugzilla. I'm sure you did that right?

    If you don't think the demos coincide with how one would actually use GTK, maybe you aren't using GTK as intended...

  14. Re:What about the Win32 port ? on GTK+ 2.0 · · Score: 5, Informative

    Yes, that's correct. The win32 version is not yet
    released though, it's just in "preview" status. Should be out in a few months.

  15. Re:Unfortunate trend.. on GNOME 2.0 Desktop Alpha · · Score: 5, Informative

    We've thought about this in detail, that's why GNOME does compat exactly like Windows; instead of breaking old libs, we make new libs with a different name that install next to the old libs. See http://pobox.com/~hp/parallel.html. So no app has to port until they feel like it.

  16. Re:Au contraire on 2.4, The Kernel of Pain · · Score: 2

    There's still some basic speed you need to have, and I think there's an issue of how to be sure you aren't constantly buffering and never displaying, but I'm not sure.

  17. Re:Au contraire on 2.4, The Kernel of Pain · · Score: 2


    With the tk toolkit, FVWM 2.4 and crappy hardware,
    I see almost no tearing. It is certainly nothing
    compared to the tearing that gtk+ produces.

    I'm talking about tearing between the frame and client, not flicker inside the client. GTK 2 does not flicker inside the client, at all, ever. Tearing between the frame and client is not something that's possible to eliminate entirely without an X extension. It's less visible or more visible in some cases, can depend on what graphics you have and so on, but it's always there.


    Why would this be substantially better than what gtk does now:

    [create pixmap]
    [draw on pixmap]
    [blit pixmap to screen]
    [delete pixmap]

    (Note that only GTK 2 does that.) The server-side backing store is better because it would be for the window manager frame and all subwindows. The GTK backing store is only for the client window, and does not include the frame/client as an assembly, thus you see the frame/client out of sync.

    Additionally, there is an unavoidable tearing problem for the few GTK widgets that still have their own X window in GTK 2; these have the same issues as frame/client because X has no way to move multiple windows atomically. Server-side backing store could also give the impression of atomically moving many windows at once.

    GTK could avoid this problem by never having widgets with their own X window, which is indeed the long-term plan.

    In any case, the point I'm making is not that GTK is cool or whatever, but that you need to think about this problem in terms of whether intermediate/inconsistent drawing states appear on the screen. It's a synchronization/flicker/tearing issue. Speed isn't what gives the perception that it's "wrong"

  18. Re:Au contraire on 2.4, The Kernel of Pain · · Score: 5, Informative

    As the author of a window manager and big hunks of GTK, I don't think your analysis is quite right.

    The primary problem is synchronization, not delay. GTK 1.2 is very fast, its geometry code is not causing any slowness. You are confusing slow with flicker. Flicker looks slow but slow is not the problem; no matter how fast code is, if it flickers, you will see it, and it will look slow.

    Similarly when opaque resizing a window; it has nothing to do with quantization or speed, the problem is that the window manager frame and the client are not resized/drawn at the same time resulting in a "tearing" effect. This would be visible no matter how fast you make things.

    As you say, putting the toolkit in the server or putting the WM in the toolkit are overradical ways to fix this. It's not even necessary to backing store all X windows. It could be done with an extension allowing us to push a backing store on a single X window during a resize, for example. However fixing it 100% pretty clearly requires server changes, and that's why you haven't seen a fix yet.

  19. Understand prior art first on Resources for Rolling Your Own Windowing System? · · Score: 4, Informative

    Here is the classic paper on how X could be improved, for example: http://www.std.org/~msm/common/WhyX.pdf.

    Write a window manager and fix some GUI toolkit bugs, that's a good way to understand X well. Hack on GUIs like GNOME and KDE to understand where progress is needed on the UI front, and where changing the window system could help.

    (I think almost everyone who's actually hacked on this stuff a lot will tell you that replacing X isn't interesting, but if you want to make a credible claim one way or the other, getting experience is the only way.)

  20. Re:Horizontal Scroll Bar for new Text Widget? on Looking Ahead at GNOME 2 · · Score: 2

    It has a horizontal scrollbar, yes.

  21. Re:seems very naive on Generic GUI Wrapper For Python · · Score: 2

    Precisely. There is a reason GTK doesn't work like anygui, and a reason Qt/Swing/Mozilla/etc. also don't work like anygui, and a reason the AWT approach was dumped.

    You can do cross-toolkit abstraction if you do it like AbiWord, where they often add features and hooks to punch through to platform-native if required. But that doesn't work in a generic XP toolkit.

    Wrapper toolkits are very limited in power, there's just no way around it.

    Python needs to bite the bullet, suck it up, pick one of the existing actively-maintained modern toolkits despite the possible flamewar, and then simply address its limitations (e.g. porting to platforms as required). Until then it won't have a standard GUI. Sometimes there is no silver bullet. ;-)

  22. Re:GNOME, a thought on Gnome 2.0 Alpha 1 Released · · Score: 5, Informative

    X is very simple, for a windowing system, it's not complex at all. Plus no one has to see that stuff,
    it's always hidden behind toolkits.

    X doesn't have a drag-and-drop system, so I don't see how ROX could use it. DND is built on top as a custom protocol (Xdnd) shared by GTK, Qt, etc.
    I would guess that ROX just uses Xdnd, isn't it GTK-based?

    Berlin is far more complex than X.

    Porting GNOME/KDE to Berlin would be infeasible, but said infeasibility would have nothing to do with different CORBA implementations.

    Most UNIX vendors do not reimplement X, they are basically using the open source implementation with some minor tweaks. The open source implementation (primarily maintained by XFree these days) is generally more robust than the proprietary ones.

  23. Re:Backward compability. on Gnome 2.0 Alpha 1 Released · · Score: 5, Informative

    GTK 1.2 and GTK 2 can be installed simultaneously, I would expect all distributions to do that for the forseeable future.

    Deprecated means "will disappear in some future version, when not many people are using it anymore"

  24. Re:Of limited usefulness on Whitepaper On GTK+ For Linux Framebuffer · · Score: 2

    The point is a tradeoff, you punt multiprocess/acceleration in favor of smaller size.

    If you want multiprocess/acceleration, you can use the small X server developed for the iPAQ, it's not very large, framebuffer with multiprocess and hardware accel and all that would be just as big as X. So then it would be pointless.

  25. Re:Instead of focusing on these features, GTK on Whitepaper On GTK+ For Linux Framebuffer · · Score: 2

    It's not like there's a tradeoff here; accessiblity is also nicely cleaned up in GTK 2, and goes well beyond keybindings to support screen readers and so on.