<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: redoC-A2k</title>
    <description>The latest articles on DEV Community by redoC-A2k (@redoca2k).</description>
    <link>https://dev.to/redoca2k</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F867560%2F2d266ab2-785b-4847-bd0d-51ef27769bab.png</url>
      <title>DEV Community: redoC-A2k</title>
      <link>https://dev.to/redoca2k</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/redoca2k"/>
    <language>en</language>
    <item>
      <title>Career goals</title>
      <dc:creator>redoC-A2k</dc:creator>
      <pubDate>Sat, 20 Aug 2022 15:23:33 +0000</pubDate>
      <link>https://dev.to/redoca2k/career-goals-pmn</link>
      <guid>https://dev.to/redoca2k/career-goals-pmn</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;For this blog post , I will be using blog prompt from outreachy .&lt;/p&gt;
&lt;/blockquote&gt;






&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Are you looking for a job, internship, a grant, a volunteer position, or some type of other opportunity?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;I am fine with internship, job, type of positions .&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What types of work would you like to contribute to?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Being a computer science student , I would like to contribute to technical/development work . Although I am interested in learning AI/ML technologies , so I am comfortable with contributing to AI/ML too.&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What tools or skills do you have that would help you with that work?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;For development work , I am comfortable with web developement in mern stack as well as working in java and c (GTK+) . For AI/ML , I am learning tech stuffs&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What tools or skills would you like to learn?&lt;/strong&gt;

&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I want to learn AI/ML tech stuffs . I am also fine learning stuffs related to linux ( for example linux desktops) or may be kernel too .&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What interpersonal skills make you a collaborative team member?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;I am comfortable in communication with other team-mates , I can upscale or downscale my efforts for matching my output with my team's expectation&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What languages do you speak?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Well I am comfortable with english and hindi.&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Are you able to move, and if so, which countries/regions are you willing to move to?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;If I need to permanantly shift then I am only open to saudi-arabia country ( and it depends ) besides this, I am willing to be in India. If I need to occasionally move then , I am open to other locations ( but here is also it depeneds on the frequency and duration ) &lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Are you looking for a remote job?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Yeah , remote jobs are best suited to me !&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Are you looking for a full-time or part-time paid position?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;I am fine in both&lt;/p&gt;




</description>
      <category>outreachy</category>
      <category>gnome</category>
    </item>
    <item>
      <title>Outreachy: Mid way blog post</title>
      <dc:creator>redoC-A2k</dc:creator>
      <pubDate>Tue, 19 Jul 2022 05:45:36 +0000</pubDate>
      <link>https://dev.to/redoca2k/outreachy-mid-way-blog-post-3nck</link>
      <guid>https://dev.to/redoca2k/outreachy-mid-way-blog-post-3nck</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Time flies ! Now I have reached to middle of my outreachy internship. This blog post will throw some light on my journey till now .&lt;/p&gt;
&lt;/blockquote&gt;






&lt;h2&gt;
  
  
  Timeline
&lt;/h2&gt;

&lt;p&gt;Initially when I applied for outreachy I proposed this timeline .&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;May 30 - June 13 =&amp;gt; replace gtk+-3.0 with gtk4 library and fix all build error which comes while doing so .( 2 weeks)&lt;/li&gt;
&lt;li&gt;June 14 - June 27 =&amp;gt; Fix runtime errors ( 2 weeks)&lt;/li&gt;
&lt;li&gt;June 27 - july 18 =&amp;gt; Replace libhandy with libadwaita and rewrite needed ui files and fix error which come in doing so ( 3 weeks )&lt;/li&gt;
&lt;li&gt;July 18 - August 1 =&amp;gt; Improve custom stlyes to make app work better with dark theme ( 2 weeks)&lt;/li&gt;
&lt;li&gt;August 1 - August 15 =&amp;gt; Make app follow Gnome HIG guidelines . (2 weeks)&lt;/li&gt;
&lt;li&gt;August 15 - August 26 =&amp;gt; It is the time which I have kept as empty to adjust my timeline above in case I need to .&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think the timeline was fine . But &lt;strong&gt;fixing errors is not that easy as I thought back then&lt;/strong&gt; specially the run time errors . For fixing these I usually have to go through code , run the development version of application then edit the code and so on .&lt;br&gt;
And in this cycle I also have to occasionally consult the documentation of different libraries getting used in the project .&lt;br&gt;
We have changed a bit timeline and the new timeline looks like so &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;July 18 - August 1 -&amp;gt; Debug and fix gtk4 branch issues&lt;/li&gt;
&lt;li&gt;August 1 - August 15 -&amp;gt; Clean the MR code and improve the code quality&lt;/li&gt;
&lt;li&gt;August 15 - August 26 -&amp;gt; Document the current gtk4 branch problems and what's left and start a discussion with the community (users, translators and designers) about UI improvements&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Progress
&lt;/h2&gt;

&lt;p&gt;I have never ported any application from gtk3 to gtk4 before so I wasn't much confident whether I will be able to complete my project or not , how much time I will need ... So I started coding on my end a bit before the outreachy timeline . Therefore , right now I am nearly on my timeline . I have changed the gtk library version from 3 to 4 and also some other libraries with which gtk4 wasn't compatible with. The application can be successfully compiled now ( so all compile time / build time errors have been rectified 😊 but still there are some run time issues and errors ) . &lt;br&gt;
I removed some functionalities while porting the application ( not the primary functionalities )  as well as there is a lot of code has to be clean . &lt;br&gt;
In simple words application is now in workable state but not in a complete working state .&lt;/p&gt;

</description>
      <category>gnome</category>
      <category>outreachy</category>
      <category>gtk4</category>
      <category>soc</category>
    </item>
    <item>
      <title>Week-5: Explaining project</title>
      <dc:creator>redoC-A2k</dc:creator>
      <pubDate>Thu, 07 Jul 2022 16:17:07 +0000</pubDate>
      <link>https://dev.to/redoca2k/week-5-explaining-project-1kb2</link>
      <guid>https://dev.to/redoca2k/week-5-explaining-project-1kb2</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;How I learned gtk and got into this internship I have explained in part one of this series .&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  About Gtranslator
&lt;/h2&gt;

&lt;p&gt;Gtranslator is an application which helps translators to do translation of application from one language to another through po files .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v6dgnCKd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uampodxkmmkpr03k27x9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v6dgnCKd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uampodxkmmkpr03k27x9.png" alt="Gtranslator interface" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am taking example of &lt;a href="https://gitlab.gnome.org/GNOME/rhythmbox/-/blob/master/po/hi.po"&gt;rythmbox&lt;/a&gt; po &lt;a href="https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html"&gt;file&lt;/a&gt; to explain a bit about GTranslator . Your file name may be in different format ( which does not have git branch and language name) but it should end with .po .&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Red dotted box labelled 1 in above image denotes ,
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J8peUb3n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o6h4gl7hk403328lduml.png" alt="title" width="800" height="240"&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Red dotted box labelled 2 shows a translation table which on left hand side shows the strings getting used in the codebase of rythmbox (&lt;em&gt;These strings are originally coded by developers&lt;/em&gt; these strings are in English in this case) . Right hand side of the table shows translations which are done by translators corresponding to the original message to the language ( as specified in po file i.e. hindi in this case).&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Red dotted box labelled 3 shows the translation box where translators write translated message corresponding to original message ( In this case the box shows the translated message in Hindi language)&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;So a general workflow is you go to untranslated message rows in translation table , update their translation and then move to next untranslated message rows .&lt;/p&gt;
&lt;/blockquote&gt;



&lt;ul&gt;
&lt;li&gt;
Red dotted box labelled 4 shows translation memory box and notes comments in po file , related to which row you are on .&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;em&gt;This project is now in gtk3 and my project in this internship involves porting it from gtk3 to gtk4.&lt;/em&gt;&lt;/p&gt;






&lt;h2&gt;
  
  
  Tips if you are starting to contribute to this project
&lt;/h2&gt;

&lt;p&gt;That's great if you are thinking to contribute to gtranslator , You are most welcome! . You should join &lt;a href="https://matrix.to/#/#gtranslator:gnome.org"&gt;gtranslator&lt;/a&gt; room , you can ask there for help related to project. You might find some functions which are doing some thing other than what their name indicates , or some other confusing piece of code .. that's fine as this app initially was in gtk2 which then ported to gtk3 and now it is getting port to gtk4, So a lot of change has happened in the codebase.&lt;/p&gt;



&lt;h2&gt;
  
  
  How's the community and mentors have helped me
&lt;/h2&gt;

&lt;p&gt;Initially I too was confused as the codebase was large and some random functions were there , I communicated with my mentor regarding those and it comes out that it was left over functionality from gtk2 and doesn't need to be used any more.&lt;br&gt;
I then started working on project and pushed some commits , the folks in the gtranslator room were also there and always ready to help me . Even one of the room member reviewed all of my commits and provided me many useful suggestions .&lt;br&gt;
These reviews helped me in identifying my mistakes , pointed me to new components in gtk4 which I could use to fill the gap for the components which are not in gtk4 while they were in gtk3 .&lt;/p&gt;




</description>
      <category>outreachy</category>
      <category>gnome</category>
      <category>gtranslator</category>
      <category>gtk</category>
    </item>
    <item>
      <title>Outreachy Week-3: Everybody struggles</title>
      <dc:creator>redoC-A2k</dc:creator>
      <pubDate>Thu, 23 Jun 2022 02:47:08 +0000</pubDate>
      <link>https://dev.to/redoca2k/outreachy-week-3-everybody-struggles-3dbp</link>
      <guid>https://dev.to/redoca2k/outreachy-week-3-everybody-struggles-3dbp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This blog post is on my progress till week-3 and vocabulary terms which I got to know while working on this project .&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Journey uptill now
&lt;/h2&gt;

&lt;p&gt;When I initally replaced gtk3 version with gtk4 version there were so many errors about 300 or so and double warnings 😵. Then I went through each error one by one , and figured out that I have to change some parent classes . Because now in gtk4 version , some classes have been made final which were not final in gtk3 and now we can no more derive from those classes . This was a big task as there were many components which were deriving from those final classes for example DL-teams page, projects page and Poeditor page some other components .  The one which was looking toughest to me was poeditor page . It was a component deriving from GtkNotebook , we have to remove that component and modify GtrTab component as its replacement .  &lt;/p&gt;

&lt;h2&gt;
  
  
  Some vocabulary terms which I got to know
&lt;/h2&gt;

&lt;p&gt;When I started working there were many terms related to translation which I was coming accross like &lt;strong&gt;po file&lt;/strong&gt; , &lt;strong&gt;internationalisation&lt;/strong&gt; , &lt;strong&gt;localisation&lt;/strong&gt; etc. I read some sections from &lt;a href="https://www.gnu.org/software/gettext/manual/gettext.html"&gt;gettext manual&lt;/a&gt; .&lt;/p&gt;

</description>
      <category>gnome</category>
      <category>outreachy</category>
      <category>internship</category>
      <category>soc</category>
    </item>
    <item>
      <title>Beginning Outreachy journey with Gnome</title>
      <dc:creator>redoC-A2k</dc:creator>
      <pubDate>Wed, 25 May 2022 16:08:44 +0000</pubDate>
      <link>https://dev.to/redoca2k/beginning-outreachy-journey-with-gnome-o8j</link>
      <guid>https://dev.to/redoca2k/beginning-outreachy-journey-with-gnome-o8j</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This blog post introduces myself , how I got started as a contributor to  gnome as contributor and what my project is about .&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  About me and my first encounter with gnome
&lt;/h2&gt;

&lt;p&gt;I am currently in the third year of my integrated Master's Program at a tier-3 college in Indore, India. I am a technophile since childhood and in those days , I once installed kali-linux in vm (as google searches always show it was easy to hack neighbour's wifi with kali-linux 🤣 and cellular internet was expensive back then) but to my surprise the kali-linux looked very complex, then I again google searched and one advice got fix in my mind and that was "Kali linux is complex , &lt;em&gt;start with a simple linux distro (ubuntu) and use it instead of windows&lt;/em&gt;" (A simple way to learn a tech thing is to use it). So When I entered college, one thing I was determined at ... and that was using Linux. I installed ubuntu Linux and loved the way it was beautiful and responsive, just one click and the application gets open immediately. Later I come to know that GUI which I am looking at and experiencing is actually gnome desktop.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdtogl9cc16xguhqqm8rq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdtogl9cc16xguhqqm8rq.png" alt="linux vs windows"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  From gnome user to gnome contributor
&lt;/h2&gt;

&lt;p&gt;I then tried other DEs (desktop environments) . But sometimes they offered less functionality to get the work done and other times provided more features than needed, making them complex and crashing occasionally. Gnome is a proper match of the two. The applications in gnome were simple to use, stable and provided all needed functionality.&lt;br&gt;
In one subject of our college, we need to submit a study report on an open-source application. So at that time, I decided to get to the development side of gnome. Although, studying big thing as gnome application, is itself a very big thing and I was a newcomer back then . Fortunately, that was an online semester and most of us submitted copied report from the internet. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flozpp1uybakorab5pg98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flozpp1uybakorab5pg98.png" alt="Satisfied"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How I get started
&lt;/h2&gt;

&lt;p&gt;I looked at this &lt;a href="https://github.com/ToshioCP/Gtk4-tutorial" rel="noopener noreferrer"&gt;repo&lt;/a&gt;. But still going through official Gtk documentation was difficult for me, I went through this &lt;a href="https://www.oreilly.com/library/view/foundations-of-gtk/9781590597934/" rel="noopener noreferrer"&gt;book&lt;/a&gt;. But some things still were not clear to me. It turns out I needed to learn about GObject and then it became more difficult. Hopefully, there was vala which works with objects similar to java,c++.&lt;a href="https://youtube.com/playlist?list=PLriKzYyLb28mn2lS3c5yqMHgLREi7kR9-" rel="noopener noreferrer"&gt;This&lt;/a&gt; playlist is must watch, after watching this and coding alongside, I developed some confidence and then following my principle (use tech to learn it) I tried to write &lt;a href="https://github.com/redoC-A2k/vtodo" rel="noopener noreferrer"&gt;this&lt;/a&gt; gtk app (although it is still work in progress), while working on this application I realized that a lot of code has to be written . So to get some idea what are good practices for coding and proper way to structure the project I started to understand gnome-clocks codebase and then one fine day I made my first &lt;a href="https://gitlab.gnome.org/GNOME/gnome-clocks/-/merge_requests/194" rel="noopener noreferrer"&gt;MR&lt;/a&gt; .&lt;br&gt;
But everything isn't in vala and how does gobject works that I still wanted to know , then finally, I found these two gems 💎 one is chapter 2 of "The Official GNOME 2 Developer's Guide" and &lt;a href="https://developer-old.gnome.org/gobject/stable/pt01.html" rel="noopener noreferrer"&gt;this&lt;/a&gt; documentation. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Besides, I also asked many of my doubts on &lt;a href="https://app.element.io/?updated=1.10.13#/room/#newcomers:gnome.org" rel="noopener noreferrer"&gt;newcomers&lt;/a&gt; channel .&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How I got outreachy internship ?
&lt;/h2&gt;

&lt;p&gt;When I made my first contribution to gnome (!194 to clocks) , &lt;br&gt;
that was the time around february and in that month, I also filled my initial application of outreachy, then around 25 march I received mail that my initial application has been accepted. So when project list got finalized , I started contributing to Gtranslator . Then I filled my final application with contributions and submitted it. On 20 May I was on cloud nine , when I saw this mail in Inbox.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65f7orwkm0fbf8xr0qu7.png" alt="mail of acceptance"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  About my project
&lt;/h2&gt;

&lt;p&gt;My task in this internship is to port the &lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/" rel="noopener noreferrer"&gt;gtranslator&lt;/a&gt; from gtk3 to gtk4 under mentorship of &lt;a href="https://gitlab.gnome.org/danigm" rel="noopener noreferrer"&gt;Daniel Garcia Moreno&lt;/a&gt; . &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2FaGr7hLM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2FaGr7hLM.png" alt="Gtranslator screenshot"&gt;&lt;/a&gt;&lt;br&gt;
Gtranslator is a gui program which helps the translators to translate a application , under the hood this internationalization happens with the use of gettext library . &lt;br&gt;
In this porting we plan to achieve these tasks - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Updating Gtk version from gtk3 to gtk4.&lt;/li&gt;
&lt;li&gt;Replacing libhandy with libadwaita.&lt;/li&gt;
&lt;li&gt;Update custom styles to make app work with dark theme.&lt;/li&gt;
&lt;li&gt;Adapt the app's ui to gnome HIG.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;&lt;sup&gt; NOTE: All the books I mentioned can be found online for free with google searches . And second thing is I didn't use gnome-builder while writing vtodo app, I just followed youtube playlist way. Third I didn't read all the books completely , but rather just some specific chapters. &lt;/sup&gt;&lt;/p&gt;

</description>
      <category>outreachy</category>
      <category>gnome</category>
      <category>internship</category>
      <category>soc</category>
    </item>
  </channel>
</rss>
