Skip to content

Bashar Kokash Posts


As a kid raised in Syria I have heard and read only in books and magazines that people collect things as [collectables] such as stamps or coins as a hobby. I was in the fifth grade, almost 11 years old when I first met someone who actually collect things. I laughed when the teacher asked if anyone is a collector but I was really surprised that one of my friends is. He is actually a collector at that age? and he used to collect pens, all kinds of pens in different colors and materials? Well that deserves something.

As I grew up, I realized that my others do it too, my uncle collects very old coins, and later I learnt it was a thing that people do as a hobby, and is something that you might get Guinness World Record for, but the idea of collecting all started from that kid at my school. I don’t remember exactly when I started but should be around the age of 16, at that age I started collecting different currencies, not only coins but also notes. It began with a one dollar, and then one euro notes, I kept collecting from my travels. Now I have a box full of different currencies and coins from +15 counties including: Euros, UAE dirham, Jordanian Dinars, Qatari Riyals, Lebanon levies, Omani Riyals, Saudi Riyals, Egyptian Pounds, of course Syria Pounds, Hong Kong Dollars, Chinese Yuan, Turkish Liras, Iraqi Dinars, Swiss Francs and US Dollars.

Unfortunately, I’m not that active. The definition of a good collector is to seek, organize and store collectables. I don’t intentionally do it, wherever I travel I keep some change and coins as souvenirs for myself. Yet, I do appreciate old coins; the oldest I have is one Syrian pound dated 1968, to put that in context, my mom was 2 years old. The oldest note is again another 1 Syrian Pound dated 1982.

I will be uploading my coins collection very soon!
What about you what do you collect?

من ذكريات العيد: الحلاقة

كل عام و أنتم بخير و عيدكم مبارك، هذا المقال مستوحى من ذكرى عيد الأضحى أعاده الله على المسلمين بالخير، هنا أنبش ذكريات طفولتي ونشأتي في أعياد دمشق. العيد عندما كنت طفلاً وحتى كبرت هو إما عيد الفطر أو الأضحى لا ثالث لهما، كانت بقية الأعياد بالنسبة لي كشاب مسلم مجرد استراحة من الدراسة أو العمل كعطلة نهاية الأسبوع. واعتدت كما أطفال دمشق على تقاليده وعاداته وحافظت على تلك العادات حتى عندما كبرت. ذكريات العيد كثيرة لكن سأتحدث هنا فقط عن قص الشعر ليلة العيد.

بالإضافة الى لبس الجديد فإن قص الشعر أو الحلاقة، قبل يوم العيد – يوم الوقفة- هو تقليد واجب على الجميع فهي الإشارة أو الدليل بأني مستعد لاستقباله. منذ الصغر اعتدت أن أرى محلات الحلاقة ممتلئة تلك الليلة، فمكان الضيق يتسع لألف صديق. الحلاقة أصلاً في الأوقات العادية هي مشروع يحتاج لتخطيط طويل، فما بالك في موسم الأعياد؟ لها نكهة خاصة تبدأ بحجز الموعد الخاص عند حلاقي المفضل، لكن حسب الظروف إما بسبب انشغالي بالتحضيرات مع العائلة لليوم التالي أو انشغال الحلاق لا أذكر أني تمكنت من الوصول في الموعد المحدد كما كل الزبائن، لذا فقد أصبح الموعد المحدد هو نلتقي مساء دون تحديد التفاصيل.

تعد هذه الليلة مصدر دخل كبير لمحلات الحلاقة لذا فلا يوجد موعد للإغلاق، بل و في الكثير من الأحيان ينتهي العمل في صباح اليوم التالي بعد صلاة العيد وغالباً ما ينال الحلاق قسطاً بسيطاً من الراحة ليعود بعدها للعمل.

في ذلك المكان الصغير المكتظ كنت أقضي الساعات منتظراً، ارتب المواعيد، وقد أعد الشاي لي ولبقية الحاضرين والأهم أتعرف بسكان المنطقة وأسمع قصصهم ورواياتهم وبالأخص تلك التي يرويها الحلاق نفسه فذلك يسليه وييسر له عمله الطويل. بعض المجلات والجرائد المحلية وغالباً ما تكون إصدارات قديمة تملأ فراغ البعض، الأفلام في التلفاز تلهي البعض الآخر، أما الجيل الشاب فلا بديل له عن الانترنت ومواقع التواصل الاجتماعي، وكنت استغل ذلك الوقت بإرسال والرد على رسائل التهنئة بالعيد، لا يمكن للملل أن يجد له مكاناً فيما بيننا.

وأخيراً عندما يحين دوري و أنتهي من الحلاقة نودع بعضنا متمنين لبعضنا عيداً سعيداً لا يبدأ إلا بهذه الحلاقة ولا يكون العيد إلا بها. لذا ومنذ أن غادرت دمشق من خمسة أعوام، لم أحلق يوم الوقفة ولم أحتفل بأي عيد.

Out-of-question software deliverables

Regardless of the size of any software force whether an individual developer doing freelance at home, a small team of 3-5 developers, or a big company dedicated for the industry of software development, they all do have a process; a written best practice, a proven method, or a common set of rules and conventions that the team agreed to follow. These rules enable the product/software development life-cycle to continue to go on and on smoothly, from requirement gathering to design, development, testing, reporting and fixing bugs until the final delivery.

Any software product especially in this era, the era of technology and connected everyting, must have the following set of features: Security, User Experience and Performance.

It is not accepted any more not to follow the best practices, nor to have a slow application suffering doing basic tasks especially with the exponential growth of the processors power. The lame answer for such issues is: the customer didn’t ask for it, it was not included in the requirements documents that the customer signed, or the customer did something wrong, the user didn’t follow the instructions, or the user is not educated. You might yourself heard better or lamer answers.

In this post, I will demonstrate the main technologies that I think any software should be built on, regardless of its business, customer, programming language or the development process or methodology followed.


It was almost 10 years ago when one of my friends worked on an Arabic version HI5, yes that was before Facebook, the moment I figured out the password is stored plain in the cookies, alt + F4 and I never went back to that site. Number 1 is always security. No matter how almost everybody including big companies emphasize on security, data protection and encryption, you still find a lot of them who fall under that bridge.

In a modern secure application, all types of data should be protected during:

  • Data processing: within the memory when access is only granted to the allowed process by the secure operating system.
  • Data storage: whether stored in a local XML file or a database in the cloud, critical data should be encrypted using proven symmetric (AES) or asymmetric (RSA) algorithms. Never store user’s password, just hash them but please don’t use MD5, while sensitive credit cards information should be strongly encrypted following industry standards (PCI standards for the payment processing applications)
  • Data transmission: within the network, through the web or the cloud, SSL/TSL should be enforced, never transmit your data plain.
  • Authorization: don’t trust people and apps, keep verifying
  • Common attacks: application injection, JavaScript injection, cross site posting, and SQL injection are still common, using the proper practices or modern platforms, such attacks are useless.

That means data should be safe all the time, from system users, administrators with power privileges and off course hackers. Ensuring use’s identity is a must, no one should be ever allowed to manipulate data intentionally or unintentionally. Name any development platform or language, they all do support all major encryption algorithms and practices and are designed to enforce them. Depending on the application, several or multiple security levels can be embraced to enforce your rules on the application, database, servers, and communication channels.



It is not the case anymore, where people can wait days or weeks to travel from a city to another, every information should use the speed of light. Unless your application is doing a complex algorithms and calculations, most of your basic operations like data retrieval and manipulation should be instant. For example, a banking system is considered one of the top critical apps where security is more preferred than performance or convenient, industry standards require certain restrictions to limit and manage the window of fraud, so you can ask the user to login to his account using a certain process or a combination of several factors, such as OTP linked only to his mobile, force a certain IP, region or location, or even a personal checkup and approval.

If your application is taking too much time to load or to perform an operation, question yourself, you must have done something wrong, if you think that delay is reasonable, you should quit and find another job.


User experience – UX

Medium, the famous blogging website is one of my favorite example in perfect user experience. It delivers only the expected in a simple, minimal and unique experience. You can find many definitions for a perfect user experience, some call it Apple 😉 others have published theories and papers on how to deliver the best application user experience. I see it as a continuous effort towards making users smile using your application.

There are several concepts/ practices for delivering a good user experience such as, delivering simplicity; keeping everything to the minimal required level, no need to fill the screen with all the menus, features and functionalities, show only what you think it is important for the user to perform the task. Also, keeping the number of clicks to the minimal is a key factor, this means in order to perform any task in your application starting from the home page, the number of clicks should be as minimal as possible. Some suggest 3 as the magic number, but as long as you are measuring that factor then you are on the right track.

Environment specific features will deliver an awesome experience to the user, if he is a loyal Android user and your application uses an Android specific gesture or widgets, he will feel home or for Windows applications you can add live tiles and so on.

User guidance; the application should be user-friendly; i.e. self-explanatory, no need for user manuals or training, the app should be easy to the degree the users feel they have used it before even during their first time.

UX efforts should be taken seriously in the application development life-cycle, put in the correct place, before, during and after the development. If not, the application will simple be very complex to use, users will be required to have a PHD degree to do the basics.


Do you have your own list, please share it in the comments.

No Estimates Software Development

Software development can go messy as you can imagine, that’s why we have rules, processes and tools to help control code and delivery.

The key asset to a proper software plan is estimating how long such a feature/ task requires using the experience and resources available in your team. Estimation is considered a commitment that you have to honor, requirements might change, or you might not be a subject matter expert, so unclear requirements and the fear of commitment lead to unrealistic estimations.

But can’t we deliver software skipping the estimation stage, or when they called zero estimates, if you are familiar with a certain repetitive task that your team is expert in, does it has to have the same estimate the same time? why don’t we estimate only the new features or tasks?

Woody Zuill, a senior consultant, trainer, and Agile coach, was recently hosted on .NET Rocks podcast, he is one of advocates to “No Estimates” software development, listen to him and let me know what you think in the comments.

Hello World

Not every blog starts with “Hello World” unless you are a developer.

This blog Code / Business will highlight topics of both low-level geeky code and high level strategy stuff, and somewhere in between. Expect some html, code and a lot of technical discussion in an abstract way that will interest you.

Feedback is more than welcomed.