<?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: Agustin Perez Paladini</title>
    <description>The latest articles on DEV Community by Agustin Perez Paladini (@agudpp).</description>
    <link>https://dev.to/agudpp</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%2F546441%2F671a8d8f-9e29-4afc-978d-0ae68ce0e7f6.jpeg</url>
      <title>DEV Community: Agustin Perez Paladini</title>
      <link>https://dev.to/agudpp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/agudpp"/>
    <language>en</language>
    <item>
      <title>opensource c++ "productivity app". Contributors wanted :)</title>
      <dc:creator>Agustin Perez Paladini</dc:creator>
      <pubDate>Sat, 16 Jan 2021 00:43:30 +0000</pubDate>
      <link>https://dev.to/agudpp/productivity-app-or-bad-memory-4p1l</link>
      <guid>https://dev.to/agudpp/productivity-app-or-bad-memory-4p1l</guid>
      <description>&lt;p&gt;Hi all, publishing this over here to hear your thoughts about it, contributors are more than welcome, and hopefully someone find it useful!&lt;/p&gt;

&lt;h1&gt;
  
  
  What
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;Alias&lt;/code&gt; is an app I started long long time ago, with some intentions in mind, which changed (some of them) in the last years, but keeping the same goal, reach content with wathever keywords you remember about it (i.e. &lt;code&gt;tags&lt;/code&gt;). No magic here.&lt;/p&gt;

&lt;p&gt;The app is currently intended to run as a native app on multiple platforms, is opensource and written on cpp (with QT for the ui). You can find it &lt;a href="https://github.com/agudpp/alias"&gt;here in the github repo&lt;/a&gt;. There are more info over there.&lt;/p&gt;

&lt;p&gt;The goal of the app is to provide a fast (very fast) access to information (&lt;code&gt;content&lt;/code&gt;) using tags. There are many possible use cases, I use it daily to access code snippets or commands (note that you can do this commands with the &lt;code&gt;alias&lt;/code&gt; feature from unix system, somehow that was the inspiration for this, before was called "Tag Linker", ugly name).&lt;/p&gt;

&lt;p&gt;I also use it often for taking / storing notes, or information I get from messaging apps like slack / whatsapp / etc, that finding them later would take ages trying to figure it out either who send that message, what was the topic about or some (key)word mentioned around that time (I usually tag important links or information with the name of the person and topic). Clearly, this is an example of my bad memory.&lt;/p&gt;

&lt;p&gt;Some other examples are, storing personal information like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;urls to projects or in general&lt;/li&gt;
&lt;li&gt;banking information (IBAN / etc).&lt;/li&gt;
&lt;li&gt;mobile phone or address.&lt;/li&gt;
&lt;li&gt;snippets of code I frequently use or commands &lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm not inventing something magical in here, there are trillon ways of accomplishing the same (accessing to information), for example, you can open a notes app or store all the information in a simple and single .txt file. Still, in my personal experience, I felt annoyed when spending some time to get that information (some time = 15 seconds). &lt;/p&gt;

&lt;p&gt;The goal of alias is to access the content super fast (in less than 3 seconds), without interrumping your current flow (writing a message, writing code, doing any task), with only writing few characters to get it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Current state
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Currently the app works on linux and windows, mac is still in progress (since I do not have one). &lt;/li&gt;
&lt;li&gt;The apps looks (very very very) ugly, but is functional (there is &lt;strong&gt;A LOT OF ROOM FOR IMPROVEMENT&lt;/strong&gt;  here (and I would love to find collaborators :)). The gif on top says everything.&lt;/li&gt;
&lt;li&gt;The documentation on how to use it is poor and mainly for devs, but the app is actually intended for more general purposes (any thing that is kind of repetitive or takes time to access it or it is annoying to do it, can be solved with the app).&lt;/li&gt;
&lt;li&gt;Is optimized for keyboard use (suffix autocompletion with tab, tags filtering based on current selected tags, creation / edition / deletion of contents are all shortcuts as well as the execution of the app).&lt;/li&gt;
&lt;li&gt;The app supports encrypted content, so it requires a password to access (sensitive content).&lt;/li&gt;
&lt;li&gt;... (more in the repo)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And there are many many many ideas more to implement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There are many ideas for improving the &lt;code&gt;content&lt;/code&gt; types, currently is just text (copy text to clipboard) or execute commands. It can be many other things, like template generation content (handy for autocode generation, or generic messages generation, etc), rich text (markdown, or lists), &lt;code&gt;TODO&lt;/code&gt; content type, etc.&lt;/li&gt;
&lt;li&gt;There are other ideas to expand to mobile (longstory)&lt;/li&gt;
&lt;li&gt;Support cloud storage / auto sync&lt;/li&gt;
&lt;li&gt;....&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm interested on understanding more or different use cases, and I'm sure this would make the feature list much bigger.&lt;/p&gt;

&lt;h1&gt;
  
  
  Feedback / Join
&lt;/h1&gt;

&lt;p&gt;I'm using the app on daily / hourly basis, and I find it super useful, but of course, not everybody is the same, so I would like to share it to the world and get some feedback, and better yet, people who wants to join and make the app much better and powerful :).&lt;/p&gt;

&lt;p&gt;Salute&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>opensource</category>
      <category>contributorswanted</category>
      <category>qt</category>
    </item>
    <item>
      <title>packing / unpacking data in c++</title>
      <dc:creator>Agustin Perez Paladini</dc:creator>
      <pubDate>Sat, 02 Jan 2021 23:55:15 +0000</pubDate>
      <link>https://dev.to/agudpp/packing-unpacking-data-in-c-3gmh</link>
      <guid>https://dev.to/agudpp/packing-unpacking-data-in-c-3gmh</guid>
      <description>&lt;p&gt;Hi there, newbie here, and this is my first post. I decided to restructure some of my github repos since they maybe can be useful to someone :).&lt;/p&gt;

&lt;p&gt;The post:&lt;/p&gt;

&lt;h1&gt;
  
  
  Packet lib
&lt;/h1&gt;

&lt;p&gt;This is a very short blog post since its a small &lt;code&gt;c++&lt;/code&gt; &lt;code&gt;header-only&lt;/code&gt; lib I created, hence the full documentation would be in the &lt;a href="https://github.com/agudpp/packet"&gt;github repo&lt;/a&gt;.&lt;br&gt;
The &lt;code&gt;packet&lt;/code&gt; library is intended to provide an easy "API" for packing and unpacking data (messages) so they can, for example, be safely sent over the wire (TCP). Whenever you need to send information over the wire is important to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They are respecting some kind of protocol (otherwise you may want to close the connection).&lt;/li&gt;
&lt;li&gt;What you are getting is complete (need to know when the message start / end).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TCP ensures you that the data will be sent in order, but doesn't ensure that the calls are atomic (reads / writes). Hence, whatever you the data you are sending, needs to be "packed" / "unpacked". For example, &lt;code&gt;protocol buffers&lt;/code&gt; is a library that serializes messages, but doesn't handle where the message start / end.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The packets have the following shape:&lt;br&gt;
&lt;code&gt;[ head_pattern | pkt_content_len | content | tail_pattern ]&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;head_pattern: (optional) a user defined pattern to detect early wrong or invalid messages over the wire&lt;/li&gt;
&lt;li&gt;pkt_content_len: field indicating the size of the content buffer&lt;/li&gt;
&lt;li&gt;content: the data / content itself&lt;/li&gt;
&lt;li&gt;tail_pattern: (optional) ensure that the packet size was correct and respects the protocol.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The intention of the &lt;code&gt;packet&lt;/code&gt; library, is to provide an API that let the user read as few characters as needed while checking the validity of the packet while reading it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Feedback
&lt;/h1&gt;

&lt;p&gt;As always, very happy to get some feedback, comments, or join forces on the open community.&lt;/p&gt;

&lt;p&gt;Salute&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
