Is Haiku still looking for Developer Contracts?

Sorry for not responding, jotted down some of what I was going to say but just had something sprung on me I need to deal with, tomorrow and possibly day after too :slight_smile:

There is not any time limit on it, I just wanted to respond fairly fast myself rather than leaving you in limbo waiting for Haiku, Inc people to come out of our 4 week slumber or whatever.

1 Like

Hi,

So, sorry for the long delay, I’ve just had to move flats and the number of problems never seems to stop growing, and then the DNS on my private cloud went down!!

I’ve been working on a CV and am still waiting on some feedback, but I can send that to you shortly if you want to discuss further via e.g. email. To summarise a bit about me, I’m a mature (25) student, so whilst I don’t yet have time in industry under my belt, I’m not a new programmer either; in fact I first learnt to program for real with darkwyrm’s tutorial series as a teenager back in 2009-10, and I have been doing a bit of everything in my own time since then - at some point I’d really like to finish off a number of projects on my disks and upload to github as I’ve probably dabbled in a lot as and when needed like most people, but not managed to tidy up once the job was done :D! I had been dual-booting Haiku day-to-day, back in the R1A1 years, before I moved from XP to linux, and so I’ve used the Be API to make a few demo apps from those tutorials as I was learning C++. I can remember the basics and would hope to get up to speed over a bit of time. I’ve stuck with C++ since then, moving onto Qt for graphical projects under Linux, but doing plenty of theory and terminal work, and I did like ot learn the language inside-out as much as possible. The most significant project I think I undertook was a draft proposal paper, along with implementation, for the standards committee; one thing about me is I am a perfectionist, anddo fixate on the details, so when the way I had designed my coursework for college when I was 19 required something beyond the scope of the language, I carried that forward from there. I had to shelve this hwen I started my degree and haven’t ever really ofund enough time, but it should be on github.

Totally understand regarding value when spending other people’s donated money, you need good results from me or anyone else.

I’m happy to be flexible around how payment would work, or hourly rates, etc. At the very least it’s not a problem in theory - the whole reason I’m looking for some work at the moment is I’m trying to apply for a (small) mortgage, so I need to work out in more detail things like how much I’d need to be earning overall each year, but the main sticking point is having some income that ticks all the boxes the banks will require - as a full-time student, without a job ATM, nearly all the money I have coming in won’t be taken into account. So, the actual pay will probably be less important for me than the flexibility and being able to work remotely whenever in the week I am able to, as I also have PTSD and am trying to work through that at the moment, which means life can be sporadic, and I can focus in bursts a few days at a time - good for programming, less so for office jobs!!!

And as I’d mentioned, I do fixate on the details, I’d hope with developing something like an OS this would be an attractive trait, but I’m cautious about straddling a line between billing by features that need doing and running myself into the ground if this takes me forever to implement, versus simply billing for the number of hours and finding I’ve done some thing in lots of detail but not covered enough ground in general for what you were wanting - I’m happy to hear any input from anyone regarding this.

So yeah, if you’re still interested, hopefully we can work with something, and like you say, something short-term to start with definitely sounds a good idea to me - even if for mortgage purposes I’d need some other more fixed form of employment to evidence, there would be no harm tryin this out on the side to start off with whilst I get some more info and continued looking on that front. And from your end, if you understandably need a ceertain amount of return, I don’t see any reason why it wouldn’t be possible to shift the pricing structure to ensure that I’m inline with that - if you would get a certain amount of code/results/whatever per hour from a full-time and professionally-employed developer, then I’m happy to adjust things to match that ratio, given the circumstances, if that makes sense, and at the very least, for a couple of weeks whilst I can work out exactly what the banks will be looking for, how much time I’ll realistically have each week, etc. etc. It wouldn’t exactly be a bad thing to have on my CV, to say I complted even a modest amount of work on the OS I discovered and tinkered with when I was 14! Plus I can take an Operatng Systems course the year afer next so if I end up learning things beforehand, may be a free 20 credits for later :smiley:

Regarding some preparation work, that’s absolutely fine. I’m already a little bowled-over you’re open to considering, I can imagine several projects where they might not even think of employing someone until they had a good 6 months of pull requests and the such on a voluntary basis. In an ideal world, I’d have loved to have done this already, but other projects have been on my list, so as you say, I don’t mind getting up to speed for free before you can consiuder anything else, and I’ll definitely browse through trac and see what looks like a good starting point, unless anyone has some specific recommendations. A couple have stood out and I’ve noted them down. It’ll take a bit of a while to get a decent development environment set up and I can try some small PRs just to get comfortable with the workflow in e.g. Paladin.

The main thing for me is I’ve been working towards a fully virtualised system using illumos for some time now, and in fact part of the motivation was to spin up alternative OSs like Haiku much more easily, and this would make getting a development box up and running much more organised. I was aiming to knock together a build script for official releases (alpha/beta) and nightlies in order to contribute some images for Haiku upstream that can just be started off the bat, also hoping some solaris folks might wonder and be tempted to give Haiku a whirl.

I’ve been trying to clear some hard drive space this last week, to get this set up on metal finally and start having a proper play with it, so is it alright if I continue with this in the meantime and see how I go, along with unboxing my stuff and some other errands, and then will look to close a couple of tickets and RTFM on style and other housekeeping? The solaris learning curve has been quite steep, but I’m hoping it will pay off in the end, and it should run much faster than my current libvirt under Ubuntu.

But thanks very much, being able to email later in more detail would be brilliant! I’ll continue to get on with what I’ve mentioned, does it make sense to leave this thread open in the meantime so anyone else may comment if they want to add anything or any comments, and then if it suits I’ll email you with some updates in a week or so, depending how this hypervisor stuff goes, and get looped in to discuss?

Thanks very much :smiley:

Hi,

If you are a student, one way to handle it is to apply for Google Summer of Code which will happen in a few months (assuming we get selected this year). This is something we know how to handle on Haiku side, and the nice thing about it for us is that Google would be paying for it.

If things go well during GSoC, we could then continue after it with a contract funded by Haiku inc.

On our side I think this would be the easiest thing to set up. Would it work for you?

More about summer of code:


Thanks, I did look into this, the main thing for me is the timings; as a sort of internship, it definitely wouldn’t be considered by the banks, and as I would need to evidence something like three months’ pay then that puts everything back to the end of the year, which is not ideal for me. If it were the case of doing a couple of things at the same time then it may be a workable option, depending when I hear back from some other places I had asked, but I totally understand that from your end this makes more sense.

For future lurkers… I did a survey recently (80+ responses), and these are the top things to likely be considered based on community feedback (in no specific order)

  • Working with Pulkomandy on improving webpositive / Haiku’s webkit fork (big)
  • 3d Hardware acceleration via a drm/dri port (big)

Those two things are what most people say are the “most lacking” today. (and just so happen to be really complex projects… go figure :slight_smile: )

5 Likes

The most complex part of this is fighting with Linux headers that are the mess. It redefine a lot of compiler-specific declarations. I plan to try at least compile some DRM kernel drivers. My previous 2 attempts were failed, but I didn’t spend enough time yet. I will try again when I have time.

9 Likes

WebPositive definitely really important, personally I loathe web stack/HTML so probably wouldn’t be best placed for most of the work, however the acceleration sounds an interesting area. I’ve just got the solaris machine installed and one thing I was hoping to do is use waypipe so that I could run wayland sessions in the VMs and log in remotely - currently I believe VNC is offered but this presumably requires emulating a graphics card, running X, compressing that out and putting over a socket, etc. etc. There’s a tool called waypipe that can pipe the Wayland session and (I believe) use the local OpenGL/graphics accelleration to do the actual rendering, and this can simply be accessed over SSH so it seems ideal for remote logins and a basic test worked beautifully between two arch machines. First task is to get this working inside the zones whilst logging in remotely but I’d be interested eventually in trying to port wayland to solaris so I can view on the same device. So, know you said really complex XD, but at the least I’d have an investment in looking into something like this, separating out the linux-specific headers and maybe making it more POSIX-friendly if this would help build on illumos (or BSD first - actually I should look and see what ports they have already). Anyway, I saw a bug relating to the RTTI in GCC2 libraries, this is very similar to the standards proposal paper I wrote a while ago so thought after trying a few toy bugfixes to get started this might be a good place to look into.

1 Like

I am going to start getting back up to speed on WebKit and WebPositive and related things, though this week is quite hectic as my son’s birthday is soon and we are getting ready for that, plus work, etc. But I at least have the motivation. But man, what a codebase…

Regarding stellarpower and a contract, I know people want GPU acceleration and better video card support in general, but I think there are many other lower hanging fruit which could really improve Haiku without being some intense years long project. I think those are the things we should focus on for now, both for volunteer developers and contractors. Though since contractors are being paid, they can work on some of the things volunteers might not want to. It doesn’t mean these are terrible, drudgery tasks, just maybe more annoying or detail tasks, which maybe would be good for stellarpower based on your mini biography above.

But like I said in my first post here, please try to pick a bug or two to tackle, get a Haiku development system going, and get some patches accepted in Gerrit. Also maybe start browsing tickets in Trac and build up a list of some of the bugs that interest you, or bugs where your past experience might help in solving. Don’t worry too much who owns the bugs, you can always post a comment and change ownership if you start working on something. Though I do know a whole lot are under “nobody”, which means what it sounds like. I think it is safe to say there are bugs and features to work on in just about every possible area of computing. Haiku is a great environment to work on a wide variety of programming tasks!

To be honest my main concern right now for having a single contractor is getting changes reviewed in Gerrit quickly, especially as that contractor gets up to speed. Eventually they will know their way around and can also help review work from volunteers, but I have some concern about patches sitting around too long. The contractor, whether stellarpower, or someone else, may need to structure their work so that changes in Gerrit can sit a week or so until volunteers have some time on the weekends. This may be okay, given the relatively slow pace of Haiku and currently no concern over urgent “production” bugs. But it should be taken into account and a contractor should not be upset if changes take some time to get reviewed. Just wanted to lay that out :smiley:

1 Like

Hey,
Haiku doesn’t have wayland nor X11, we have our own server called app_server that is responsible for drawing applications, drawing fonts etc, we also have a html5 remote desktop for that but it still is kind of buggy.
Not sure why vnc would require X11 (except maybe in the running the vnc client on some application server sense)

Personally I think tasks like a resumeable app_server (applications reconnect after a crash) or the html5 client getting a second app_server instance and improving that client might be worthwhile tasks for a contract,
Perhaps also multi monitor support.

2 Likes

I wouldn’t say that of WebKit. There are a lot of small tasks that can be done and that are not complex at all. Starting with the most boring thing: watching WebKit repository, merging the changes from time to time, and fixing the build. This does not need any advanced skills. But currently I’m the one doing that, and I can only spare time for it once every month or so. Which means I spend a weekend merging things, and then I have no time to do anything else. If there was someone else doing this work, I could focus on the next step, maybe, upstreaming our work to WebKit to make this whole process easier.

Anyway, the main blocking thing for WebKit is not WebKit related at all. We need to release beta 3 and update the buildbots so I can ship a new WebKit release with many already done bugfixes. This (combined with leorize’s and nielx’ work on the HTTP APIs) would already solve several of the problems with the current version.

After that, there are still a lot of not particularly difficult things to do. WebKit is big, sure, but the parts we are touching aren’t all complex.

4 Likes

Hopefully we can hire a developer to just do this!

You may want to try with OpenBSD or DragonFlyBSD’s versions of the DRM drivers. They are older than upstream Linux, but they also mostly use BSD or BSD-like APIs directly, so you may be able to lift a lot of code from the existing BSD compatibility layer, or at least get a handle on things faster.

looks like OpenBSD have a higher Linux version than DragonFlyBSD’s .

gitweb.dragonflybsd.org Git - dragonfly.git/history - sys/dev/drm

DRM update committed (undeadly.org)

and DragonFlyBSD’s has a IRQ Linux implementation.
DragonFlyBSD Implements Part Of Linux’s IRQ Subsystem, Improves DRM Driver Portability - Phoronix

Maybe taking care of Intel drivers would also help. From what I’ve seen, most frustrations come from having to blacklist stuff at first boot. If people could get picture without any issues, I doubt they’d be that frustrated.

But if the greater goal is to use all drivers from Linux or BSD-verse plus DRM, all effort should go there first.

That is debatable.

Personally I am annoyed at this approach, where everyone just relies on Linux to write the drivers, and Linux relies on the hardware manufacturers to do it. Eventually this means all the knowledge about graphics driver in the community is lost and we are fully dependent on the corporations to provide us with drivers, it makes me a bit sad.

On the other hand, maybe it is easier (I’m not even sure about that).

That’s not the only thing. In my case the driver works fine for the internal display of my laptop, but I cannot use any external display. This is very annoying, because I have a much larger and much better display at home. As a result I do not use Haiku this much, and, for example, I am less interested in getting it to play Youtube videos properly because I have to watch these on a different computer anyway. If Haiku had dual screen support I would use it a lot more.

Also annoying is that I several time spent a few hours looking at this Intel driver and couldn’t understand why it’s so close to working, but there is always something slightly wrong and I can’t understand what it is. The work is maybe 90% done, but without the remaining 10%, it’s all useless. And like for web browsers, the dominant approach is “oh we should just restart from scratch, ignore all the work done so far, and port Chrome/Linux video drivers”. Maybe I am unreasonably invested in the native solutions.

5 Likes

AMD has docs on their gpus (maybe not all, i have not checked) but certainly for some, I’ve bern playing around with the idea of building a driver.

I am not a fan of porting linux drivers really, it could bring some nicer gpu 3d support but that seems a bit effort vs reward kind of thing, I think it makes more sense to have drivers we can actually debug ourselves in the long run.
(I also had incredibly bad experiences with linux drivers crashing constantly on oses that had ported them, Personally i think stabilitiy is more important that absolute performance, and therefore think it is fine for the driver to crash, but not for it to bring down the system as a result, so I favor a usermode driver, if this is feasible)

One can though use the drivers in linux as a reference for building a new driver too, since the intel and amd ones are mostly mit afaik.
for nvidia i simply wouldn’t bother currently.

1 Like

There are too many kind of hardware so even with good will, you won’t be able to achive this on your own. Therefore, maybe try to approach manufacturers. Show them that Haiku is different and has a lot to offer. That it would be sad to use ported drivers and not take advantage of Haiku design. Ask them what they would need to write drivers and how you could cooperate. Even if they don’t do it themselves, they could provide infos that would help in the design of the architecture needed, of a toolkit and docs necessary for the one who will do. You could also use these infos to make a “simple” driver that can be used as an example.

That argument applies to every hardware, maybe we should just not make any drivers if it is impossible to make one for every piece of hardware by a single person…?

I think it is perfectly possible to make drivers for specific pieces of hardware, why shouldn’t it be?

The intel extrem I have works with external vga output. I have to connect the VGA cable and restart my laptop. I have to do it manualy so no problem. Hotplug is not possible.
I will get 1920 x 1024 with cable, and 720 x 576 without cable on Laptop.

For easy solution. Why not embed the echolog output in Vision? Or put a link to the log files in Vision? What is so difficult in open the log files in a browser window?

About Web+ I am very surprised about what it can already. It shows my AVI files and plays them! Not possible with another browser or Windows! For watchinh YouTube Videos it will be just a mattet of time and the Haiku beta3 to see these working again. Still we have qmplay2 anf Otter browser to watch Videos right now!
I really don’t know all this discussion about Web+ in connection to YouTube. Haiku is there to work first not for watching Videos all the time.

Haiku should become a heaven for all the modern developer out there first!