Thoughts

Technical write-ups, personal essays, business lessons and short notes.

Early Tindio launch artwork with the green Tindio name surrounded by colourful products.latest

Tindio: Building a home for Egyptian makers

My first startup after graduation: building a Drupal marketplace for more than 700 local stores, the products I still love, and the lessons that stayed with me.

Read →
Five handmade clay characters with laptops, tablets and phones, surrounded by tiny food, plants, cushions, a bookshelf and a bicycle.

Pickdevs: From wireframes to handmade characters

How a small company website went from UX wireframes to handmade characters, photographed in our own lightbox and brought to life with CSS and JavaScript.

Tindio airship below a world map showing routes from Egypt to international destinations.

Why Tindio.com Failed

Four years of running Tindio taught us why a marketplace can fail even when the product and technology look good. The real problems were operations, quality, seller behaviour and weak unit economics.

An illustrated reception desk with coffee, a small gift and colourful lines connecting it to many colleagues

What Jennifer Taught Me About Work

Jennifer welcomed me on my first nervous day at work and made every colleague feel seen. She showed me that even a small role can have a huge impact.

An autumn view through a window of a wet green garden, fallen leaves, trees and parked cars

My First Autumn Away from Home

In October 2017, I arrived somewhere unfamiliar, cold, lonely and hungry. A kind host named Bea helped me learn the small things that made life feel possible again.

An open wooden drawer with a dark tablet and a silver one inside, in warm light, blank screens, no logos.

I woke up a PlayBook and an iPad 2 last weekend

Last weekend I tried to revive two tablets that had been in a drawer for years. A PlayBook and an iPad 2. I put OpenSSH, apps, games, and YouTube on them so they work for travel and reading.

Designing systems in sunlight

How Do We Stay Relevant as Software Engineers in the Age of AI?

Cover for Drupal 8 embed node form in custom page<form />

Drupal 8 embed node form in custom page

Creating a custom module that adds a new page embedding the node creation form.

Cover for Drupal 8 override views field template in twig{{ output -}}

Drupal 8 override views field template in twig

The template naming for a single views field, which the docs barely cover.

Cover for Drupal 7 - Create taxonomy based Countries list in 3 easy steps[ EG, UK ]

Drupal 7 - Create taxonomy based Countries list in 3 easy steps

A taxonomy-based countries list that holds both country name and code.

Cover for Use Details and Summary instead of Fieldset with Drupal 8<details>

Use Details and Summary instead of Fieldset with Drupal 8

Moving collapsible form groups off fieldset.

Cover for What's new in Drupal 8?D8Video · Arabic

What's new in Drupal 8?

An Arabic video tutorial explaining the new Drupal 8 features and structure.

Cover for Bypass Symfony Forbidden issue with "Web" folder in Mac OS403 → 200

Bypass Symfony Forbidden issue with "Web" folder in Mac OS

Why the web folder was hidden from the browser on macOS, and the fix.

Cover for Mac OSx Create new local host and change the default Pointing Directory (In Arabic)127.0.0.1Video · Arabic

Mac OSx Create new local host and change the default Pointing Directory (In Arabic)

Creating a virtual host or local domain and changing the default directory.

Cover for Drupal 7 create node programmatically through xml-rpc request<methodCall>

Drupal 7 create node programmatically through xml-rpc request

Creating nodes remotely by calling Drupal services over XML-RPC.

Cover for Drupal 7 hide block for mobile devices using browscapbrowscap

Drupal 7 hide block for mobile devices using browscap

Hiding blocks on mobile server-side, beyond what responsive themes can do.

Cover for Drupal 7 execute javascript code after a ajax callajax().then()

Drupal 7 execute javascript code after a ajax call

Calling a JavaScript function after an AJAX request using Drupal FAPI.

Database vault protected from malicious query fragments.

Secure development with Drupal 7- part 2

In Part 1 I discussed Cross Site Scripting attacks and how to prevent and avoid it while coding, In this part I will talk about SQL Injection attacks and how to prevent it by using Drupal API functions

Terminal connected to shared hosting servers with a developer toolbox.

Get Drush to work in Godaddy shared hosting plane

Drush is very important tool for drupal Developers, Its managed from Shell so a lot of people failed in getting it work at shared hosts like godaddy, I will explain briefly how to install Drush on godaddy shared hosting plane. 1- Open your Linux Terminal and create SSH Connection to you account

Four data streams passing through a security filter.

Secure development with Drupal 7- part 1

Drupal is one of the most secure CMS because its support its developers with the appropriate API functions that keep drupal applications secure from sql injection and Cross site scripting attacks . In this tutorial i will discuss the most important API functions , bad and good development behaviors that affects your applications security.

Human-readable input transforming into a structured machine name.

How to create Machine name field in drupal 7

In this tutorial we will use Drupal 7 Form Api to create Machine name Field which is not well Documented in drupal.org . To create Machine name field we need another Field which is the Parent/Source field, Source field contain the Human Readable Text that will be converted Automatically by Using "misc/machine-name.js" to machine Friendly name. End users Usually working Directly with Source Field. Lets Create Form like what we get when we Add vocabulary from Structure > taxonomy > Add vocabulary.

Translucent page panel floating above connected route layers.

Add overlay View to any page or path

Drupal come with a great Overlay Module which make you able to display your pages in overlay view,I wonder when i see a lot of drupal developers uses another Jquery libraries such as Fancybox, Lightbox, ShadowBox...etc, Anyway overlay View is usually limited for administration pages, So in order to make our visitors access our pages in overlay view we should tell drupal "Hey Drupal !! This page is for administrators" ;-) (okkk i know we lie !!) :-#

Modular cabinet with a nested configuration drawer.

Add menu block in administrator configuration page

Although Drupal has a great API, But i see that its not well Documents, Anyway a few people have asked me about how they can create a block in administrator configuration page "admin/config", its easy but not well documented, I will do this by using HOOK_MENU, lets see:

A heavy group of web assets compressed into a lightweight, fast-moving page.

Improving drupal performance

Drupal is a High performance Content Management System, But there is a different reasons that may decrease the performance of your web applications, And there is a different steps that should be taken into account when developing your great application with Drupal .

Workbench with six tools representing key development tasks.

6 Important Tools For Drupal Development

Drupal is not Only a Perfect Content Managment System (CMS), But its a Great Content Management Framework (CMF) . A Lot of Developers around the world Contribute Drupal. Drupal has more than 9000 Modules !!! .In this topics i will discuss The most important 6 modules and tools for Drupal Development, Lets Goo!!

Three-stage signal path ending in rising data points.

Add Google Analytics Code to your drupal 7 in 3 steps

In Our Drupal World there is a lot of modules that can help us in different purposes. Google Analytics is one of the most important modules that help you to integrate your drupal web application with Google Analytics using some GUI configurations. But if you are looking for performance you should reduce the number of installed modules, Thats why we are going to Explain how to Integrate google Analytics Code to your Drupal web applications Easly in 3 Steps by using "drupal_add_js()" function .

Metadata tiles assembling into a social sharing card.

How your Drupal 7 Application appear in facebook ?

What if you shared your Drupal web site URL in Facebook !! What is the Title, Description and Image You will Got ? Is that Exactly what You want ? In this Tutorial i will show You How To control The Appearance of your Drupal Front page In Facebook .

27 thoughts