Friday, October 19

Let there be Univtag!

*drum roll* BA-DUM-TSS!

Remember that little Android app I was talking about all those months ago?

Well, it's out!

May I present to you... Univtag!

Launching screen

Points of interest on the map

Selected point preview

Audio guide!

You can find more information about the app on the official Univtag website.

It is already freely available on the Google Play Store for downloading and is 100% ad-free!

Development is far from over, as the app is not complete in terms of features and optimization, but it looks and feels pretty solid already!

Hope you'll like it!


Monday, January 22

Long time, no see!

Hi all!

It's been quite some time since my last post, as I've been neck-deep in my MSc's last semester courses and my internship, trying to speed up my graduation as much as I can!

I've been developing a commercial-level Android app in Java for a well-known Greek Digital Agency, implementing many cutting-edge libraries and following best practices and design patterns. Unfortunately, I can't disclose much info at the moment, but it will be ready to launch in a couple of months!

Until then, here's a small teaser! :)


Also, I've not given up on Samba at all, I simply couldn't find the time to pick up from where I've left the project during this semester. BUT! MSc course attendance is now officially over and the finals are just around the corner, meaning I'll get back to it soon enough! Keep an eye out for updates!


Thursday, September 28

Bombs away!

Hi all!

I've already written a few things about Bombshell as an introduction to the project and to share some details on its goals.

This post lists the first couple of scripts that have been added to the master branch, since they've been fully tested and achieve their intended functionality. Some polishing will be applied in time, depending on application needs.

  • dispcont: a simple interactive script to display grouped totals of directory contents

As the description suggests, dispcont is very useful when a categorized display of directory contents is needed for the given path, to its own depth (not recursively). The script can be run with a --hidden option, to include accounting for hidden files and directories, then interactively receives the full path from the user.

The output sums up directories, default filetypes and unspecified (not native) filetypes in the input path.

This eliminates the need for piping wc and ls commands, while being able to run from any point in the file system.

  • easycp: easily copy entire folder contents recursively and interactively

This script makes copying of entire directory trees a breeze, while also completely eliminating procedural errors from the user. To put it simply, it's cp for dummies :)! Source and destination paths are checked, all nested directories are automatically created, if needed, and the entire process is as simple as entering the paths when prompted!

I'm also very happy with the very clean way easycp handles the copying process!

The script cannot be used for copying single files or directory contents selectively, though this is going to be implemented to the Bombshell toolbox with another script!

The project repository can be found in the appropriate section of this blog.

More info in the next update!


Thursday, September 7

GSoC 2017 officially over!

So, Google Summer of Code 2017 is completed!

It has been an amazing experience for me. I'm a firm believer that Open Source is the way to go in terms of software development and the rise of new technologies, it is the healthiest possible environment for new ideas to blossom and evolve into something of importance and impact to the general public. It is also a fundamental way of self-growth and improvement, which expands the technical skills and the ability to operate within an organized group like few other creative channels can.

Being able to work with Samba during the summer has been a milestone for me, a foundation upon which more contributions to the Open Source community can be based, more knowledge can be acquired. GSoC has been an entry point to the world of teamwork in software development and a path I am eager to keep on following.

GSoC may be over, but the same cannot be said for my project goals. It is my current goal that incomplete code is taken care of and the intended functionality is achieved.

Key priorities include:
  • Finish test suites and test the current code.
  • Produce potential fixes as a result of the testing process.
  • Optimize the code.
  • Deliver a finalized result that can be officially merged with Samba builds.

I want to thank everyone in Samba for what the last months have meant to me, especially David and Kai.

This blog will be restructured to log all Open Source project contributions that occur from now on and, by no means, will it be archived.

Stay tuned for what comes next!


Monday, August 28

FINAL Progress Report

FINAL Progress Report #12 28-08-2017

We've reached the end of the line!

This blog post is the final log entry to my development journal for GSoC 2017 and my project with Samba.

You can find a detailed Work Product Submission link at Samba Wiki.

A GitHub Gist has been created to host all the libcli/dns patches that were sent to Samba Team for reviewing, you may browse its contents here.

All GitHub repositories linked from the "Navigate" section, have been fully updated for the final GSoC evaluation.

I will post again on the blogspot, when Google Summer of Code 2017 is officially over.

Thanks to everyone who dropped by, I hope you found something in my logs that was worth your time and helped you in any way!


Notice: dimgrav/samba (fork) repository will continue to receive fixes during the final evaluation process. dimgrav/Samba-GSOC2017 repository will be updated after the end of GSoC.

Saturday, August 19

Progress Report #11

Progress Report #11 19-08-2017

As mentioned in my previous log entry, most work occurs in samba-fork at this point. In the following days, Samba-GSOC2017 repo will also be fully updated, for the final stage and evaluation of GSoC.


Project documentation has been organized according to the repository structure, in the form of markdown README files, as follows:

  • libcli/dns/ : Project description, library index
  • libcli/dns/cli-fn/ : DNS client features
  • libcli/dns/cmocka-tests/ : Client tests information and instructions

This is intended to help developers, who wish to contribute to Samba, get a good grasp of the existing DNS client code and ease their way in Samba development. There is no formal, end-user documentation needed as far as I can tell, due to the intrinsic functionality of the project. The text will be updated constantly, to reflect changes in code, yet this format is to be kept.


Scripts for configuring and building the code for Samba integration are needed. the libcli/dns/wscript_build has been updated to use the new source code.

In libcli/dns/cmocka-tests/, a wscript file has been set up to handle test suite configuration and building, though it's not yet fully functional, there is troubleshooting to be done, to properly handle internal Samba build objects. I expect to sort it out shortly.


Other changes include code formatting to match Samba conventions and guidelines, minor changes in libraries (mostly to make the code more readable and straightforward) and similar refinements.

Things are coming together at this stage!


Saturday, August 12

Progress Report #10

Progress Report #10 12-08-2017

Since the last update, all active work has been moved, restructured (and changed a bit where needed) so that it could be integrated to the samba-fork I use on GitHub.

The Samba-GSOC2017 repo will still be updated to match the samba-fork repo, but not always simultaneously.

Major changes in structure include:

This will be acting as the DNS UDP/TCP call handler with socketwrapper support and TSIG generation, which is the project goal. This is intended to replace libcli/dns/dns.c of the mainline Samba Git in the final builds, through libcli/dns/wscript_build.

client_crypto.c - libtsig.h
GSS-TSIG client-side handling for signed packets with the structures and utilities lib.

dns_tcp.c - libtcp.h
TCP client-side DNS call handling and structures lib.

dns_udp.c - libdns.h
The pre-existing async DNS library for Samba with socketwrapper support, as written by Kai Blin.

The above corresponding .h files are used in cli_dns.c. The .c files that handle calls and sig generation are incorporated in cli_dns.c and are currently used only to facilitate writing tests. They are not intended to be part of the builds (will be probably removed when cli_dns.c and tests are finalized).

wrap_cli.c - libwrap.h
Multiple wrapping for cli_dns.c and associated library.

  • cli_crypto_test.c
  • dns_tcp_test.c
  • dns_udp_test.c
The test suites that are currently under development, in accordance to client_crypto, dns_tcp, dns_udp. Integration of tests to a larger suite that would test cli_dns.c should be relatively simple, if these suites are individually succesful.

To-do list:
  1. TESTS - TESTS - TESTS! Writing tests is probably the hardest part yet, but that's a good thing!
  2. Complete preprocessor include/define statements in all .c and .h files as required for functionality and performance.
Should I be done with the above swiftly, I might be able to go through the dns handler code for improvements.

I went through the Samba Wiki in regard to adding documentation, I've started making some drafts, but I'll have to get some guidelines from my mentors and the team.


Saturday, August 5

Progress Report #9

Progress Report #9 05-08-2017

gss-tsig and tcp-cli:
  • minor syntax and parameter fixes, some corrections and additions to struct descriptions.

I'm currently in the process of making wrapper functions for the dns call and tsig, but I'm not quite there yet. I've had no previous experience with wrappers.

  • many additions, a bit stuck in testing functions that return void type. Additional parameter checks must probably be added and properly running tests should be ready this week.

This last part is quite challenging, but I enjoy the process!