[haiku-development] Re: GSoC | Project | 2017

  • From: Deepanshu Goyal <code.deepanshu@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 5 Mar 2017 18:44:37 +0530


1.Developing a Calendar Application

   - I will learn about Haiku API
   - Creating Applications in Haiku
   - Will of coarse brush by C++ skills
   - but I doubt that if I will be able to complete this project as I am
   new to Haiku API and Advanced C++.

Have you looked at the linked "existing software"? Can you think of a
design for the app? How should it look like, what functionalities should
there be in it?

And more importantly: would you use such an application? Because I think
that's what matters most: if you don't plan to use it, I don't know how
you can get the motivation for writing and then maintaining it.


Yes I have gone through all the applications mentioned out there and I
pretty much like the idea of developing a Calender Application which I can
use daily. I will develop the application from scratch, the existing one's
can help out when I am stuck.

2.Improving 3rd party Applications

   - Same points but this will help me get started into Haiku API
   - and also I am quite sure that I will be able to complete this
project
   - I believe fixing issues, updating applications to use layout
   management will buildup my skills enough to take up another project
for
   Haiku after the end of my first year (College days are best, you get
a lot
   of time to contribute to Open Source & learn apart from the books).

For this one, in the GSoC scope I think it would be more interesting to
focus on a single one of the applications. Have you found one you think
could be updated? Not just converting the UI to layout (well, unless it
is a very big application and it needs 3 months to go through the whole
UI), but also improving functions, adding new features, and making it
better.


I was looking for apps which needs to be updated to use layout management
and here's something I found :


   - https://github.com/HaikuArchives/Vision/issues/13
   - https://github.com/HaikuArchives/FtpPositive/issues/5
   - https://github.com/HaikuArchives/BeGet/issues/5
   - https://dev.haiku-os.org/ticket/13182
   - https://github.com/HaikuArchives/Hare/issues/1
   - https://github.com/HaikuArchives/ArtPaint/issues/45 ;(I think owenca
   has already partially converted this)
   - https://github.com/HaikuArchives/Globe

Probably I can convert all of these to use layout management and also fix
the bugs in these applications and work upon features.
If you have one or two specific apps in mind, we can start discussing
the ideas around them and draft a roadmap.

3.RTL languages support in interface kit

   - Of coarse I look forward to see Haiku in my native native language.
   - However, I have no prior experience in text rendering or graphics
   development.
   - I tried to lookup for documentations to learn more about this
project,
   after hours of Googling I couldn't find any proper documentation on
how to
   implement RTL support .
   - Also,if any other student take's up this project. I will be
completing
   the translation for Hindi which stuck at around 60% since 2012.

The simplest way is to ask people with some knowledge about it.

RTL means "Right to Left" and as far as I understand, it is needed for
arabic languages, but not for Hindi (am I wrong?)

Hindi is written using Devanagari (right?).
https://en.wikipedia.org/wiki/Devanagari

This is a Left-to-right language according to Wikipedia. However, it has
other features we may not support properly: ligatures, and other way to
combine letters and markers.

A proposal about improving rendering for this should start with a survey
of the current situation: how does it look like in web pages? in
applications (labels, buttons, etc)? In StyledEdit? In Terminal?

In all these cases, all problems should be identified, maybe comparing
with other operating systems - you could assemble a collection of
screenshots showing these problems.

A second step would be to research how to implement this properly. It is
likely that you will have to use two tools: FreeType and Harfbuzz.

Freetype is a font rendering library. It is what we use to convert
vector data from character fonts, into something we can render on
screen.

Harfbuzz is a layout engine, that can drive FreeType and tell it which
glyphs to use and how to lay out them. We currently don't use Harfbuzz,
and instead use a much simpler home-grown solution, which has many
limitations.

In order to get up to speed with these tools, I think you could write a
little application using them to render some text. It will allow you to
understand how they fit together and how to use them.

In Haiku, all the text rendering work is done by app_server. So, the
following step would be to explore that part of the code, and see how to
integrate Harfbuzz into it. It would be appreciated that some tests are
written first for already supported scripts (latin, CJK), to make sure
the integration of Harfbuzz does not break them. And after Harfbuzz is
added, we can complete that test suite with Hindi samples.

Currently. I can't even view Hindi in WebPositive or any other browser all
I see is black boxes in place of the text. If I work on this one I will
ofcourse fix this issue for Hindi in Haiku.

I have been contributing to Haiku in past, I was a active participant in
2014 also mentored in 2016(Thanks! @scottmc). I consider my GSoC
participation as a starting point of joining a developer community, not
a
summer gig.

My plan is to choose a project and start working on it early so I can
complete my project well before time.

A good way to approach GSoC!



Thanks! If you could suggest which one I can dive into I will fix some bugs
and submit patch files before submitting the proposal.

--
Deepanshu

Other related posts: