-
GitLab
I recently made the switch from Bitbucket to GitLab, and I wanted to share my experience.1. Open Source: GitLab is fully open source2. User-Friendly Surprise: Moving my code repositories felt like a breeze. GitLab’s interface is not just pretty; it’s genuinely user-friendly. The import functionality was actually fully automated. It could not be easier.DIY Freedom:…
-
VSCode and VsCodium
Although VSCode is open source, Microsoft while building the binary executable adds proprietary code that collect information about the users even if they opted not to. The community created VsCodium as a fully open source alternative without these Microsoft propitiatory code. It has exactly the same features and uses same extensions. I am using it…
-
Replacing Google Email, Contacts and Calendar
Because we got used to major service providers such as Google, or Microsoft, we think of these services, email/Contacts/Calendar as one integrated service, but once you move away from them, you will find things a little bit more difficult. The point is to find a service that provides you mobile and desktop access to them…
-
Removing Google Drive and Docs
Simply I reverted back to use my Flash drive as a backup mechanism. I removed Google Drive application and stopped using Google Docs. I already has Office, so no real need to use the cloud. Later on, I went to the Drive website and removed all my documents and also all documents that was shared…
-
Moving away from Google Photos
Recently I became more aware of security issues and worry about how free google services are not really free. They are collecting my info and sell it to advertisers. Almost all websites and mobile apps that has ads, those ads are served by Google. Although you may hate these too much ads, that web site…
-
Android Performance Story
I am developing a personal finance application and it uses SQLite to store all of its data. I had slowness in the application where I calculate balance for all accounts. The first thing that came to my mind is that the DB access is slow and I have to research if I should add indexes to the…
-
Using UUID as a Primary Key
I am developing a personal finance application on mobile and web. Data should be synced two ways between the mobile app and the web application. The data schema is: Currency table with currency name and conversion rate Account table with name and a foreign key to its currency Transactions table with an amount, withdraw account related, deposit account related,…
-
JHipster Pros and Cons
Jhipster is a web application scaffold that generates backend and frontend code for CRUD applications. You describe entities in JDL format among other options and Jhipster generates backend server and frontend UI for you. Here are some of the advantages: Fast application code scaffold. In a short time, an application is generated. Many options exist on…
-
Lesson Learned: Code Regression
Giving advice is not very effective most of the time. Sharing real experiences and trouble and how it is handled is more effective. The best is whoever learns from others mistakes. So I am sharing here a story where I and my team introduced a bug and it was leaked to the production environment. I…
-
Technical Codebase Visibility
In the last post, I wrote about the problems that happen because of the lack of technical codebase management. First, you can not do anything without knowing your status right now as well as where you are heading. Putting your goals in mind, then you are fully equipped to do the right things and monitor…
-
Lack of Technical Management
I worked on many projects and found a repeating anti-pattern that is happening to the codebase, which is the lack of technical management. Here, I am sharing my thoughts about it. The problem definition: The team has no understanding of the size of the product and its complexity. There is a lack of metrics and…
-
Organizing Application Classes into Packages
In Java language, we have encapsulation at many levels. First, is the class, as it may has private data members and methods. It has the benefits of hiding complexity and provides a layer of abstraction. Second is the package. It provides access rights to sibling classes inside it. Classes defined without being public are private…
-
GUI Test Automation at End of Release
Today, I was consulting Egyptian company in Cairo. They had an objection to the CEO request to write automated GUI tests per sprint. Typically, he asked them to include that GUI test automation as a done definition per story, so the story will not be scored as done if its related automation was not totally…
-
Managing Browser Back/Forward when you use JqueryMobile
I am using JQueryMobile for building website that works on Mobile, tablet, and desktop computers. As my application is an Ajax application. I wanted to control the browser URL in order to enable browser back/forward button in my Ajax single-page application. The solution is really easy, whenever you want to change the location call location.hash…
-
Being a Javascript Expert
Recently I am focusing to be an expert in Javascript. Being an expert is not an easy task. I have to focus as much as I can. If you know how much technologies I learned and worked in lately, you will know how I am distracted. I developed iphone, android and web applications using Java,…
-
Discarding Arabic Diacritics From Text
To strip out diacritics from Arabic text, this is a little code in Python that I like a lot. import unicodedata return filter(lambda c: unicodedata.category(c) != ‘Mn’, s) Look how it is elegant and small. Just one line with Lambda expression and a check of which the letter is unicode diacritics…
-
Python Language
With Python, I write one quarter of the equivalent Java code !! Java code is a waste of life 🙂 I think the same applies for C# if not worser than java. Python is really a simple design and Agile programming language, IMHO. From ahm507.blogspot.com
-
The Importance of Focus
Without focus you will be distracted in multiple activities that you will not be able to set targets or track your progress accurately. And even if you did, you will be slow, as your power is distracted in multiple directions. Slowness in a competitive and fast moving world is not an option. From ahm507.blogspot.com
-
New Agile Meetup
15 Nov 2014 meetup. It was about Agile certifications and Agile adoption failure cases and how to avoid it. From ahm507.blogspot.com
-
Explore Kanban Meetup
On 4 May, we had a wonderful meetup. The session was about Kanban. We all enjoyed the meetup. http://www.meetup.com/Agile-Cairo/events/178740502/ See and download the slides at: http://www.slideshare.net/slideshow/embed_code/34555233 From ahm507.blogspot.com