GSoC 2017 Aspirants

I want to create a user application Calendar as a part of Google Summer of Code listed under project ideas. @waddlesplash and Sean Healy are the allotted mentors.

I am working through given links given on Ideas page. I want to know more pointers that would help me with this project.

Thank you.

I would suggest you start by looking at the existing calendering apps and see where you can do better.

https://depot.haiku-os.org/#!/?bcguid=bc1-LKNV&repos=fatelk,haikuports,besly,clasqm&arch=x86_gcc2&viewcrttyp=ALL&srchexpr=calendar

AFAIK all of those are standalone solutions. If you could get me integration with my Google, iCloud and Outlook calendars … well, that would be a major advance in making Haiku a day-to-day usable OS.

How are you going to store events? The Haiku way of doing this is with 0-byte files with all data stored in extended attributes that can be viewed and edited directly in Tracker - see the email system, People files or WebPositive’s bookmarks for an example. So you are looking at introducing a system service rather than just an app. At the same time, the file format should be well-documented so that other people can write utilities for it.

Good luck.

Cool thing :).
I would also suggest to take a lookt at this littly guy :slight_smile:


this gives some hints about “alarm” for upcoming calendar events and also maybe help with the
attibtues integration :-D.

Also a Accountmanagent (over plugins?) would be good :-D.

Thanks @michel and @Paradoxon.

@michel The link is not working. Can you please resend the link?
Also, there is less info regarding GSoc on this site. Please provide more info on previous Haiku GSoc intern experiences.
What are the things I should make sure to make a best proposal?
Thank you.

Hi,

You should read the “information for students” page: https://www.haiku-os.org/community/gsoc/2017/students

You can join the Haiku-development mailing list and introduce yourself to the developers.
You need to submit a patch or a piece of code related to your project, so we can make sure you are up to speed with development work.
For this project idea, you should tell us your plans for the calendar application: how it integrates with the OS, how it would be useful, which services it would integrate with and how to do it (use of existing libraries, writing new code?).
It should probably include a review of:

  • Existing applications on Haiku: is their code reusable or not, what are the good and bad features
  • Existing applications elsewhere: which ideas can we borrow from them

I will work on it @PulkoMandy Thanks

Hi Everybody,

My name is Jeffrey Qiu and I have my eye set upon the “x86-64: Support for 32 bit userland” project listed under the “Kernel” section of Haiku’s 2017 GSoC ideas. It seems that Jerome Duval is the go to mentor for this project.

I have some prior experience working with the x86 and x86-64 Intel Architectures, and would like to know whether anybody has advice as to where I can get my feet wet with a patch related to that project.

Thank you,
Jeffrey Qiu

P.S. I hope you don’t mind that I piggybacked on your post @shivakrishna9 !

https://dev.haiku-os.org/ticket/8520 may be a good way to start on this one.

Some other ones are possible in the kernel and runtime_loader (not necessarily related):
https://dev.haiku-os.org/query?status=assigned&status=in-progress&status=new&status=reopened&component=^System%2Fruntime_loader

https://dev.haiku-os.org/query?status=assigned&status=in-progress&status=new&status=reopened&component=^System%2Fkernel

Please subscribe to the haiku-development mailing list and introduce yourself there, as you are much more likely to reach the developers.

Alright! Thank you so so much for the advice and pointers. I’ll get started.

  • Jeffrey Qiu

The web app seems to be down. If you have Haiku installed, install my repo and other 3rdparty repos (Instructions: clasquin-johnson.co.za) and check that the Haikuports repo is active as well (it should be), then you can search for “calendar” in Terminal with “pkgman search”, or in the HaikuDepot desktop app.

To double check my understanding so far. I basically need to find where the runtime loader starts to load the ELF file, then open the file to read the architecture bytes to compare with the OS I am running on top. Is the key thing that the runtime loader reports the incompatibility between the ELF and the runtime OS architecture, and then quits gracefully instead of core dump, or segmentation fault?

Yes, something along the lines of “Sorry, this is a 32-bit executable and can’t be run on this version of Haiku”.
If you continue with the 32-bit support for 64bit systems, then, this will be the place where we will have to set up hatever is required to get it running.

2 Likes

Aha, I am starting to understand the logic of this idea.

So, from the basic knowledge of computer architecture that I have I believe x86 instruction is compatible with x64. It’s just that their pointers are all 32 bit instead of 64 bit.
Could we build a simulator to run 32bit binary code? Meaning that a 64-bit executer could be built to load the 32bit code into the memory and put it in one 32-bit block. And then we construct a 32bit PC to walk through the code.

[quote=“michel, post:2, topic:5473”]
The web app seems to be down.[/quote]

Web app is working again, you can try my original link.

You don’t need a simulator. As you said, the CPU is able to run x86 code so let’s just use that.

The process would be something like this:

  • The runtime_loader detects a 32bit executable
  • It switches the CPU to 32 bit mode to run it. Of course the CPU must be switched to the appropriate mode at the scheduler level, each time we run a thread from this program, and back to 64bit for everything else
  • The program runs with 32bit pointers
  • The program can make system calls into the kernel, at this place two things need to happen. First, the kernel is 64-bit so the CPU must switch to 64bit mode. Second, the syscall takes parameters and some of them may be pointers. So the parameters need to be converted at some place. There are already some functions in the kernel to access user-space pointers (which are valid only within a process/team), which would need to be adjusted to perform this 32 to 64 bit conversion.

Reminder to students: it is now possible to enter your application into the summer of code website. You should not wait until the last minute, and do this now. You can submit a draft of your proposal there (as a link to google docs, it seems), so the mentors can review and comment on your proposal.

You can submit a final version of the proposal (as a PDF) later on. I strongly suggest to share your draft early, even if it is not complete. You will get comments from the mentors helping you to improve it. And remember, this isn’t a school exam, the mentors are here to help you, so it is ok to get comments from them. We prefer student sharing their work early and asking for comments, than students trying to do everything on their own and without any help.

Also, please join the haiku-gsoc mailing list as announcements like this will be sent there.

The applications end soon? How is going?

The application period has ended, we got 14 submissions from 13 students (one submitted two different projects).
The mentors are reviewing the applications now, to decide which students will be accepted.
We are not allowed by GSoC contest rules to disclose any information about which of the students we plan to accept until the official announcement date (4th of May).

1 Like

Would be neat if package daemon or smth could detect if the local .hpkg, that user attempts to mount/install is 32bit in 64bit OS (or vice versa) and ask if user wants to get the correct version from the repo (providing that HaikuDepot could find the correct package in online repos, obviously).

Just an idea for future versions :wink: