Saturday, December 26, 2020

A painless self-hosted Git service

Remember how a part of my NAS setup was to host my own Git server?

Well that forced me to review options and I stumble into Gitea.  A extremely sexy GitHub replica with more spices and lighter profile.



It was a breeze to set it up and it has all the goodies we have grown to love in GitHub.  Host it on your own PC, NAS, docker container, whatever, it is just great.  We have uploaded our archive repository on it (around 600MB of just code) and it's handling with no issues.

You can control organizations, teams, users, private/public profiles, setup the configuration in PostgreSQL, MySQL or MSSQL it is all possible.

So, if you want to avoid dependencies on external companies or avoid future charges for it.  Browse around on the Gitea site.



Wednesday, December 23, 2020

A Walk in the Cloud


There will be a moment in your life when you have enough gadgets and computers at home that you will start to worry about what will happen if you lose one of them.  Everybody does the IP68 test of throwing the phone to the toilet, so suddenly those photos, contacts and things that you treasure may go to Alice in Borderland and you definitely don't want that.

My phone wasn't IP68 complaint and my scripted backups and online cloud settings were not enough to backup all my data (I hate paying yearly subscriptions.. ok fine, movies are an exception) so I decided to do a Keanu Reaves and do a Walk in the Clouds by setting up my own.

The objective

1. Phones.  All contacts, photos and important files to be backed up.

2. PCs. Backup all virtual machines, databases on a set schedule.

3. Photos.  Terabytes of pictures stored everywhere to be uploaded and kept safely on the NAS.

4. Clouds.  Get out of it. Google Drive, Microsoft One Drive, DropBox.  Back up all their data into the NAS and keep it synch so any new stuff added there to be automatically copied back home.

5. Email.  Extract all the emails from my gmail, outlook and other third party mail providers and kept it in a searchable format in case of a problem with any of my accounts.

6. Git. A git server where all my code will reside.

7. Space. I need around 8 TBs of space, probably I will just end up using 3/4 but I'm certain that once space is not an issue, things will star to grow, plus the more gadgets we add the more data we collect.

8. Lots of redundancy. Minimum one, better two disk failure redundancy.


The Chosen One (Is that you Anakin?)

Synology DS1520+


Why this one? well you have plenty of options out there, QNAP, ASUSTOR or built your own NAS but life is short and I wanted the most user friendly software interface to interact with your NAS system out there. I wanted to be up and running in no time with all my data safe and available on the shortest time possible.

That being said, I needed 2 disk redundancy, we are talking about a RAID 6 (or equivalent), so a 4 bay was a minimum. 5 bay is just a little future proofing on my part.

The Setup

1. 4 X 4TB Ironwolf NAS disks.

This may imply a juicy 16TB of space but I ended using Synology's homebrew RAID 6 variant called SHR 2.  Which combines RAID 6 with the flexibility of adding extra HDDs of mixed capacity and use the additional space once I have all the HDDs of the same size without having to rebuild the array.  This means giving up 2 full disks for the sake of redundancy.  Long story short, final space available 7.6TB. So that extra slot is key, because later on I can add an extra 4TBs without penalization.

2. Dual 1Gb lines to my router.  The Synology supports link aggregation/bonding so I can have up to 2Gb output in absense of a higher bandwidth wiring around the house and a router that supports it.

3. 1TB WD NVME module for read-only cache purposes.  Useful for small constant files aka photos, which is the bulk of the load of this NAS.

4. 8 GB RAM, max out which could be an issue but we'll see.

5. Intel Celeron J4125.  Yes, I know.  There are Ryzen servers but others specs go up and as such price do to.  So far my use cases are not on the range of having to go up in CPU power being mainly a storage solution.

The Result 



This is where the Synology ecosystem shines. 

1. Phones.  I was able to setup Synology Moments to backup all our phone photo folders and download almost immediately any new photo that I take.  Moments itself is worth a different post due to some extremely good features that I appreciate on handling photos.

2. Contacts. It was easy to setup a contacts server which synchronizes with any popular android vCard software.  It also allowed me to access my Google Drive and Outlook accounts and synchronize with them centralizing all my contacts.  It was really a matter of a couple of clicks.

3. Photo Archives.  Drag and drop thousands of photos into the folder structure of the NAS and after being copied, Moments will indexed them and apply some AI magic to have them ready to be seen and share on your phone or any other device.

4. Email.  You can setup a web mail client on your personal cloud and enable pop3/Imap features to access your other email accounts downloading all their content into your inbox without deleting the original email.

5. Git server.  Still having trouble with it.  SSH is mandatory and I still need to play a bit more with the popular GUIs like TortoiseGIT, SourceTree, etc.  Console is there, but its 2020, why do I want to use the console If I can avoid it.

6. VM backups, DB backups.  Integration with MSSQL a piece of cake.  VM Backups, still working on it.  I don't use vmware vSphere or Hyper-v  (I'm more of a xcp-ng guy (xenserver)) so going slow there.

Conclusion

How on Earth I was surviving without a NAS at home.  No idea.  I'll keep some of my data on Google, MS just for ease of access but otherwise, I'm walking in My cloud now.


WARNING

A NAS is not a backup.  You still need to have an additional layer to safe guard your data. 


Sunday, August 10, 2014

Toronto Agile and Software 2014!

Don't forget to subscribe to the Toronto Agile Community to receive a notification of the specific dates and subscription to the Toronto Agile and Software 2014 conference to happen in November.

A must for all Agile practitioners!

Tuesday, May 27, 2014

Developer Skill Sprints Webminar is available, join now!

Do not miss the oportunity to get some nice tricks with Delphi XE6.  Subscribe to the latest Embarcaderos Webminars.  My personal favorite: "Remote Control of a Windows App from  a Mobile Device".



Saturday, October 03, 2009

Lost your ethernet cards on your VM?

This tip may help you.

We use virtualization A LOT on our environments, as a symbol of trust to this concept we only have half of our web production servers as real machines, the other half is virtualized.

A common issue we found is that after installing SP2 on a Windows 2003 Ent/Standard installation or simply after installing certain security updates on Windows 2003 Ent/Standard R2 installations we lost sometimes the ethernet cards of the Virtual Machines (VM).

Well, the solution is quite simple, this problem usually only happens when you have not installed the client VMware tools, after installing them and restarting the Virtual machine you will be back in business.

Strange? yup. Drove me nuts a couple of times.

Tuesday, September 29, 2009

Squeezing a Cabinet file.

As part of our applications automatic update process we transfer a CAB file to the client side that contains the required updates.

Lately we've being using certain components that are increasing the "weight" of our applications to the point that it is becoming a bit slow to transfer these cab files. The immediate solution to this situation was to review the compression rate of the CAB files to compensate for the additional weight of the applications.

The interesting part of this "simple" procedure was to look at the command line help of the makecab.exe, around four lines and none of them telling us what we could do to help us on this topic. Nothing that some searching and reading can not fix, so if anyone ever has the need of adjusting its CAB compression ratio here it is the solution:

The CAB format allows you to use three compression methods: Deflate, Quantum and LZX. Obviously we pick the always effective LZX algorithm, which you can enable by using this command:

MAKECAB.exe /D CompressionType=LZX /D CompressionMemory=21 /L ..\Output File1 File2.CAB

Where File1 is the file you want to compress and File2.cab is the resulting file. "/L" indicates an output directory. CompressionMemory is the level of compression under the algorithm in question, 21 seems to be the highest.

Monday, September 28, 2009

There is a business opportunity EVERYWHERE.

It is a matter of "simply" finding them.

If there is a need, there is an opportunity. Native cross platform? for me opportunity! 64 bits? semi-opportunity, for some it is very needed, for some others is just a way of showing management that our cool language and IDE supports the latest trends and we are as "fast" as any managed 64 bits and actually "faster" because we are native. (You must understand that's for management, so, save all the technical no no argument, that is why is on quotations.)

The latest example of a good opportunity, and someone going after it is this website that Eko Indriyawan one of our community members post on the Delphi forums.

It looks legit and actually from a technical point of view gets me thinking on the implementation they used to build it. I'm pretty sure tons of spamming companies will give it a try. It will mean a quick cash flow for the creators which probably will die soon after, but will get someone making good money for a bit.

ahh so nice, the beautiful process of finding opportunities keeps going...

Monday, August 31, 2009

DevExpress now officially supporting Delphi 2010.

Well, they were quick to deliver and now it is official. DevExpress is supporting Delphi 2010 and it is available for download to all their license holders.

The new Express Install, v1.46 includes full support for Delphi 2010 and C++ Builder 2010 to the following VCL components:

ExpressQuantumGrid v6
ExpressQuantumTreeList v5
ExpressVerticalGrid
ExpressPivotGrid v2
ExpressScheduler v3
ExpressBars v6 and Docking Library
ExpressNavBar v2
ExpressEditors Library
ExpressSkins Library
ExpressSpreadSheet
ExpressLayout Control
ExpressPageControl
ExpressDBTree
ExpressFlowChart
ExpressOrgChart
ExpressSpellChecker
ExpressPrinting System v3

Very good news indeed, Enjoy!

Thursday, May 14, 2009

Follow Delphi Live!

If you were one of the unlucky (like me) that could not assist to Delphi Live, follow the instant updates from lots of Delphi developers that are having a great time at it, this is the link at Twitter.

Nick Hodges is coming up next with an update on the Delphi Roadmap, so, what can be more exciting than that!


GOGO Delphi!

Monday, April 06, 2009

Time for new looks...

Well,

Lately we've seen a lot of websites changing their look to get into the web 2.0 fashion, and my favorite resource center for all Delphi related data is no exception. The ultra fast and cool, Delphi made FullTextSearch.com (Tamarack) has a new address and look in http://www.codenewsfast.com/ under the umbrella of HREF Tools.

Congratulations, can't wait to see the benefits of migrating to Delphi 2009 in the months to come!.

If you were not using this full text search engine for the Delphi and C++ Builder community and third party newsgroups, it is time you do it. Go and check it out!.

Tuesday, March 24, 2009

The future in our fingertips...

So, we loved the BlackBerry and what they did with that little ball on their keypad. Then Apple came and show us how amazing it is to use our fingertips on screen touch technology, in the meanwhile Microsoft amazed us with their Microsoft Surface, but what is next?

After I saw this video, I just laughed and enjoyed the fact that we live in very exciting times, StarTrek, StarWars and more getting closer to our time. Once reality came back to my senses, I went back to my Delphi 2009 and kept working on creating the coolest systems I can, with the language I love.

Enjoy these times and enjoy life.

A painless self-hosted Git service

Remember how a part of my NAS setup was to host my own Git server? Well that forced me to review options and I stumble into Gitea .  A extr...