OOZOU
تواصلوا معنا
الرؤى

تعلّمت اليوم

ملاحظات قصيرة وعملية من فريق OOZOU: دروس سريعة من العمل اليومي في الهندسة والتصميم.

جميع الموضوعاتshell 30ruby on rails 22ruby 12macos 10vim 7figma 4cli 3javascript 3heroku 1elixir 1
cli16 فبراير 2026

تشغيل Claude Code باستقلالية تامة باستخدام اسم مستعار YOLO

يتيح الخيار --dangerously-skip-permissions لـ Claude Code تشغيل الأوامر وتعديل الملفات دون طلبات تأكيد. لكن كتابته في كل مرة تصبح مملة بسرعة.

cli20 مارس 2024

تشغيل أمر على بطاقة Nvidia GPU المخصصة في GNU/Linux (مثل ollama)

للتأكد من أن أمرًا ما (CLI) يستخدم بطاقة NVIDIA GPU في GNU/Linux، يمكنكم استخدام متغيري البيئة __NV_PRIME_RENDER_OFFLOAD=1 و __GLX_VENDOR_LIBRARY_NAME=nvidia قبل الأمر.

ruby on rails10 فبراير 2022

استخدام سياسات Pundit لإدارة المعاملات المسموح بها افتراضيًا ولكل إجراء

لإدارة المعاملات المسموح بها، يمكنكم إضافة permitted_attributes وpermitted_attributes_for_#{action} في السياسات، على سبيل المثال:

ruby on rails31 يناير 2022

استخدام `requestSubmit` لإرسال النماذج مع Turbo

يستمع Turbo إلى أحداث submit على النموذج. لذلك استخدموا دائمًا requestSubmit لإرسال النموذج عبر JS.

ruby on rails19 يناير 2022

تجاهل الـ gems المجمّعة في Rubocop وESLint ضمن GitHub Actions

غالبًا ما تثبّت مشاريع Rails الـ gems في مجلد vendor ضمن GitHub Actions، كي نتمكن من تخزينها مؤقتًا للتشغيلات المتتالية.

macos20 أغسطس 2021

أضيفوا ظلًا بأسلوب macOS إلى لقطات الشاشة "الجزئية" أو الصور ذات الحواف البسيطة

افتراضيًا، وسواء أحببتم ذلك أم لا، تضيف اختصارات macOS لالتقاط شاشة التطبيق كاملة (⇧- ⌘- 5) ظلًا خفيفًا حول الصورة المحفوظة. وقد يجعلها ذلك أجمل بصريًا عند…

figma22 يونيو 2021

إنشاء شاشة أحادية اللون باستخدام طبقات تراكب مغطاة بتأثير تعبئة Hue

إنشاء شاشة أحادية اللون باستخدام طبقات تراكب مغطاة بتأثير تعبئة Hue

figma18 يونيو 2021

اضغطوا مع الاستمرار على ⌥option أثناء النقر والسحب على حقل الإدخال لتعديل الحجم

اضغطوا مع الاستمرار على ⌥option أثناء النقر والسحب على حقل الإدخال لتعديل الحجم

cli25 مايو 2021

git check-ignore

يتيح لكم هذا الأمر التحقق مما إذا كان ملف أو مسار معيّن متجاهَلًا، ومع الخيار -v يعرض لكم أيضًا نمط الاستبعاد المطابق (التوثيق).

ruby30 أبريل 2021

السماح بلصق كتل Ruby متعددة الأسطر في Pry عند استخدام النقطة في بداية السطر

أصبحنا نستخدم أسلوب النقطة في بداية السطر كثيرًا الآن، مثلًا

ruby on rails18 أبريل 2021

Rails 6 وRuby 3 وBootstrap 5 وHotwire

هذا امتداد لمقالة مدونة Bootrails مع إضافة Hotwire إليها: أحدث الأدوات الرائعة (حتى وقت كتابة هذا TIL):

figma17 فبراير 2021

تحويل النص إلى Title Case في Figma

يمكنكم ضبط خاصية مربع النص لتحويل كل النص إلى Title Case تلقائيًا (إلى جانب أنماط حالة الأحرف الشائعة الأخرى)

heroku6 يناير 2021

تقليل حجم Slug على Heroku

أولًا، ثبّتوا إضافة Heroku Repo:

shell8 ديسمبر 2020

تشغيل أوامر خاصة (incognito) في Bash وZsh

يكفي أن تضعوا مسافة قبل الأمر كي لا يُحفظ في ~/.bash_history. مثال: qrencode -o out.png "Some secret text"

macos7 نوفمبر 2020

تحويل SVG إلى PNG

على macOS، ثبّتوا inkscape (باستخدام brew) واستخدموه على النحو التالي:

figma31 أكتوبر 2020

سلوك CMD+Click في Figma

الضغط مع الاستمرار على ⌘CMD والنقر بالزر الأيسر في وضع المصمم (Designer mode) يحدد أعمق طبقة داخل الإطار أو المجموعة، بينما يحدد الإجراء نفسه في وضع الفحص أو المطوّر الكائن أو الإطار أو المجموعة الخارجية…

ruby on rails27 أكتوبر 2020

ترويسة Cache-Control في Rails

لضبط ترويسات cache-control للأصول الثابتة واستخدام CDN على Heroku:

shell22 أكتوبر 2020

ترقية قاعدة بيانات Postgres باستخدام Homebrew

لترقية Postgres يمكنكم تشغيل

ruby on rails14 أكتوبر 2020

إصلاح الإدخال في rails console على Heroku

إذا اضطررتم إلى لصق عدد كبير من الأسطر في rails console على Heroku (أو في أي مكان آخر)، فقد تواجهون مشكلة تداخل الأسطر بعضها في بعض.

ruby14 أكتوبر 2020

Heredoc بدون استيفاء

أحيانًا تحتاجون إلى استخدام Heredoc في Ruby بدون استيفاء ('#{....}'). يمكنكم تحقيق ذلك بإحاطة الكلمة المفتاحية بعلامتي اقتباس مفردتين:

ruby on rails14 أكتوبر 2020

معرّف فريد لعناصر DOM في Rails

يوفّر Rails كثيرًا من الـ view helpers الرائعة، ومنها dom_id:

ruby on rails13 أكتوبر 2020

إضافة أنواع جديدة إلى واجهة attributes API في Rails 5

تتيح لنا واجهة attributes API في Rails 5 بناء كائنات النماذج (form objects) بسهولة كبيرة.

macos13 أكتوبر 2020

أضيفوا فواصل إلى شريط Dock في macOS لتجميع التطبيقات

افتحوا الطرفية (أو ما يعادلها) والصقوا الأمر التالي المكوّن من سطر واحد:

shell13 أكتوبر 2020

النسخ عبر Amazon AWS S3 CLI مع تعيين الصلاحيات

افتحوا الطرفية (أو ما يعادلها) والصقوا ما يلي:

shell13 أكتوبر 2020

تنظيف Docker بلا رحمة

إذا ظهر لكم خطأ No Space left في Docker، فإليكم الحل الجذري:

ruby on rails13 أكتوبر 2020

إرفاق ملف بـ ActiveStorage من دون HTTP

إذا أردتم إرفاق ملف أنشأتموه على القرص أو نزّلتموه من رابط أرسله المستخدم، يمكنكم فعل ذلك على النحو التالي.

ruby13 أكتوبر 2020

إنشاء جداول التجزئة الوسيطة تلقائيًا في Ruby

ستُنشأ جميع جداول التجزئة في المستويات الوسيطة تلقائيًا وكأنها بالسحر

shell13 أكتوبر 2020

نسخ ملف احتياطيًا بالاسم نفسه مع لاحقة

ملاحظة: يمكنكم في الواقع استخدام !#:1 في أي أمر، لأنه يمثّل آخر وسيط مُرِّر إلى الأمر.

shell13 أكتوبر 2020

الأسماء المستعارة في Bash وسحرها

لديّ ملف منفصل في مجلد المستخدم باسم ~/.aliases، أخزّن فيه جميع الأسماء المستعارة (aliases) الخاصة بـ bash. أستخدم الأسماء المستعارة كثيرًا وأضيف أسماء جديدة باستمرار، لذا أنشأت دالة bash لإضافة أسماء مستعارة جديدة…

elixir13 أكتوبر 2020

حساب الجناس التصحيفي (Anagrams) في Elixir

على سبيل المثال:

ruby13 أكتوبر 2020

تغيير إصدار Ruby لأمر واحد فقط باستخدام rbenv

يمكنكم تبديل إصدار Ruby مؤقتًا باستخدام rbenv local

macos13 أكتوبر 2020

تغيير أسماء النظام في macOS

من الطرفية (أو ما يعادلها)، انسخوا والصقوا:

ruby13 أكتوبر 2020

جعل الانتقال إلى التعريف في VS Code يعمل بـ Cmd+Click

افتحوا ملف إعدادات المستخدم بصيغة JSON واستخدموا هذا الخيار:

shell13 أكتوبر 2020

التحقق من توفر منتجات IKEA

إذا كنتم تنتظرون عودة منتج من IKEA إلى المخزون، فإليكم حلًا عمليًا لمتابعة التحديثات تلقائيًا. يشرح هذا الدليل كيفية استخدام سكربت shell للتحقق من توفر المنتج في مخزون IKEA وتلقي…

shell13 أكتوبر 2020

التحقق من وجود أمر باستخدام سكربت shell

التحقق من وجود أمر باستخدام سكربت shell

macos13 أكتوبر 2020

التحكم في علامات تبويب Chrome

أحيانًا أريد العودة إلى آخر صفحة شاهدتها مع إبقاء الصفحة الحالية مفتوحة. يمكنكم تحقيق ذلك بسهولة كبيرة باستخدام الاختصارات

macos13 أكتوبر 2020

تنظيف الحزم القديمة في brew

استخدموا brew cleanup لاستعادة بعض المساحة!

ruby on rails13 أكتوبر 2020

إنشاء Hash من Enumerable (Rails 6.0)

دالة جديدة تتيح لكم إنشاء Hash من Enumerable:

ruby on rails13 أكتوبر 2020

إنشاء ترحيلات قابلة للتكرار بأمان (Idempotent Migrations)

عندما تكتبون ترحيلات تحذف بيانات أو هياكل، استخدموا if_exists: true عند حذف جدول، وتحققوا من وجود الجدول عند إضافة عمود أو حذفه…

shell13 أكتوبر 2020

أنشئوا أوامر git خاصة بكم (الأسماء المستعارة)

هل رغبتم يومًا في اختصار أحد أوامر git؟ يمكنكم بالطبع استخدام الأسماء المستعارة في shell، لكن عليكم دائمًا إضافة سياق كي لا تنسوا ما يرمز إليه كل اسم مستعار، أما البديل فهو تعريف أوامركم الخاصة…

shell13 أكتوبر 2020

حذف الفروع المدمجة مسبقًا في Git

يمكنكم استثناء مزيد من الفروع من الحذف عبر egrep -v 'master|develop|foo|bar'

shell13 أكتوبر 2020

حذف فروع git المدمجة

أمر git عملي لحذف جميع الفروع المحلية التي سبق دمجها.

javascript13 أكتوبر 2020

التعيين بالتفكيك (Destructuring) في JS

أمثلة بسيطة javascript const [a, b, ...c] = [10, 20, 100,200] // a= 10, b=20, c=[100,200] const { first, second } = { first: 1, second: 2 } // first = 1, second = 2

shell13 أكتوبر 2020

مقارنة ملف محلي بنسخته البعيدة في Git

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

shell13 أكتوبر 2020

العثور على فرع انطلاقًا من commit

c198bb715 Make default expired description logic pretty `

shell13 أكتوبر 2020

دفع commit سابق قسرًا إلى المستودع

إذا دفعتم بعض الكود وأردتم دفع commit سابق قسرًا، فيمكنكم ذلك باستخدام git push origin +commit_sha^:branch_name

shell13 أكتوبر 2020

الحصول على اسم فرع git الحالي

الحصول على اسم فرع git الحالي

macos13 أكتوبر 2020

الحصول على كلمة مرور شبكة Wi-Fi التي تتصلون بها

password: "!forHackers" `

shell13 أكتوبر 2020

تصفّح سجل Git لملف معيّن (واجهة رسومية)

تصفّح سجل Git لملف معيّن (واجهة رسومية)

javascript13 أكتوبر 2020

كيف تنشئون عنصر HTML مع خصائصه في سطر واحد في JavaScript

عند العمل على مشروع JavaScript، من الشائع إنشاء عناصر HTML ديناميكيًا. وعادةً ما تُستخدم عدة أسطر من الكود لإنشاء العنصر وتعيين خصائصه المتعددة…

ruby on rails13 أكتوبر 2020

كيف تكتشفون الكائنات المتضخمة (God Objects) في مشروعكم (Rails)

من المجلد الجذر لمشروعكم، انتقلوا بالأمر cd إلى app/models (من سطر الأوامر طبعًا)، ثم شغّلوا wc -lw * | sort -u

vim13 أكتوبر 2020

كيف تخرجون من Vim

1. ثبّتوا أحدث إصدار من Vim 2. افتحوا ملفًا في Vim 3. اضغطوا ⌘-Q وأغلقوا الطرفية 4. أعيدوا فتح الطرفية

vim13 أكتوبر 2020

كيف تخرجون فعلًا!! من vim

في الطرفية

vim13 أكتوبر 2020

كيف تحفظون ملفًا باستخدام sudo في VIM

كيف تحفظون ملفًا باستخدام sudo في VIM

ruby on rails13 أكتوبر 2020

نماذج HTML ترسل البيانات إلى action مختلف

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

ruby on rails13 أكتوبر 2020

إذا أردتم تجاوز ترتيب سبق تعيينه

إذا أردتم تجاوز ترتيب سبق تعيينه (حتى لو كان عبر default_scope)، فاستخدموا reorder() بدلًا من ذلك.

ruby13 أكتوبر 2020

تحسين أداء Bundler

ارفعوا أداء bundler بتشغيل مهامه بالتوازي عبر jobs:

shell13 أكتوبر 2020

إيقاف خادم Rails العالق

أردت إيقاف rails الذي يعمل على منفذ محدد. (يشغّل حاسوبي المحمول عدة خوادم rails.)

shell13 أكتوبر 2020

إنهاء جلسة SSH لا تستجيب

قد تتوقف جلسة SSH عن الاستجابة أحيانًا، ويحدث هذا كثيرًا عندما أضع حاسوبي المحمول في وضع السكون. وبدلًا من إغلاق علامة التبويب، يمكنكم استخدام أحرف الهروب في SSH (SSH Escape Characters) لإنهاء الجلسة

ruby on rails13 أكتوبر 2020

تقييد عدد السجلات في ارتباطات has_many

تقييد عدد السجلات في ارتباطات has_many

shell13 أكتوبر 2020

عرض بنية المجلد مع استثناء مجلد أو أكثر

هل أردتم يومًا عرض بنية المجلد الحالي مع استثناء مجلد أو اثنين؟

ruby on rails13 أكتوبر 2020

عرض أسماء النماذج في تطبيقكم

ملاحظة: يقلّل RUBYOPT=-W0 المخرجات الزائدة عند تشغيل أوامر rails، لأنه يكتم التحذيرات.

shell13 أكتوبر 2020

إنشاء طلب سحب (PR) من سطر الأوامر باستخدام hub

ثبّتوا hub أولًا باستخدام brew: brew install hub ثم استخدموا أمرًا بسيطًا كما في المثال أدناه: hub pull-request -m "best pr ever" -b oozou:develop -h feature/awesome-improvements

macos13 أكتوبر 2020

اختصارات Slack الأكثر استخدامًا لديّ

⌘-K (أو T) لفتح أداة التبديل بين القنوات (أتنقل بين القنوات بهذا الاختصار وحده، وقد ضبطت Slack لإخفاء جميع القنوات التي لا تحتوي على رسائل جديدة)

ruby13 أكتوبر 2020

علاقة اختيارية + RSpec مع shoulda-matchers

User 1 - 0..1 Laptop

ruby on rails13 أكتوبر 2020

دوال Postgres والاستعلامات غير القابلة للفهرسة (Non-sargable)

قد يؤدي استخدام دوال postgres داخل عبارة where إلى جعل الاستعلام non-sargable، أي غير قادر على الاستفادة من الفهارس.

ruby on rails13 أكتوبر 2020

استخدام UPDATE مع Join في PostgreSQL

يوضح هذا الاستعلام كيفية استخدام صيغة UPDATE مع join في PostgreSQL لتحديث البيانات في جدول بناءً على قيم في جدول آخر. على سبيل المثال:

vim13 أكتوبر 2020

نقل الأسطر إلى الأعلى والأسفل بسرعة في أي وضع من أوضاع Vim

أنقل الأسطر كثيرًا في vim، لذا أنشأت تعيينات (mappings) لتسهيل ذلك. تستخدم هذه التعيينات ⌘-j للنقل إلى الأسفل و⌘-k للنقل إلى الأعلى، وتعمل في أوضاع normal وinsert وvisual. vim nnoremap <D-j> :m…

ruby13 أكتوبر 2020

إزالة bundler المضمّن مع ruby 2.6

يؤدي إنشاء تطبيق rails 6 باستخدام ruby 2.6+ مع تثبيت bundler v2 إلى إنشاء binstubs غير قابلة للاستخدام. إذا ظهر لكم هذا الخطأ You must use Bundler 2 or greater with this lockfile. فيمكنكم إزالة…

shell13 أكتوبر 2020

إزالة commit غير مرغوب فيه من فرعكم

إزالة commit غير مرغوب فيه من فرعكم

vim13 أكتوبر 2020

إعادة تسمية الملفات في VIM

إليكم دالة مفيدة أستخدمها لإعادة تسمية الملفات في VIM (تعمل أيضًا في MacVIM وNeovim)

macos13 أكتوبر 2020

إعادة ضبط تسلسل جدول Postgres بعد عملية DELETE

عند حذف السجلات الأحدث من جدول ما، يمكنكم إعادة ضبط عدّاد التسلسل الخاص به إذا كان تتابع قيم حقل الزيادة التلقائية مهمًا لكم. لنأخذ العمليات التالية على الجدول users:

shell13 أكتوبر 2020

استعادة ملف محذوف في Git

استعادة ملف محذوف في Git

ruby13 أكتوبر 2020

تشغيل rubocop على الفرع الحالي

تشغيل rubocop على الفرع الحالي

ruby13 أكتوبر 2020

تشغيل rubocop قبل الـ commit

تُعدّ Git hooks أداة قوية جدًا لأتمتة المهام وفرض معايير كتابة الكود في مستودع Git. ومن أشهر استخداماتها تشغيل الاختبارات الآلية وأدوات تحليل الكود قبل…

shell13 أكتوبر 2020

تشغيل الأمر نفسه على مُدخل أو مُدخلات مختلفة

إليكم طريقة لتشغيل الأمر نفسه مرارًا على مُدخل واحد أو عدة مُدخلات مختلفة.

ruby on rails13 أكتوبر 2020

استخدام scope مع or في Rails

scope :human, -> { user.or(author) } scope :terminator, -> { admin.or(robot) } `

shell13 أكتوبر 2020

عرض الملفات المحذوفة في الـ commits السابقة [git]

عرض الملفات المحذوفة في الـ commits السابقة [git]

shell13 أكتوبر 2020

إرسال الرسائل إلى Slack باستخدام cURL

يتيح لكم Slack إرسال الرسائل عبر خدمة Webhooks

shell13 أكتوبر 2020

استنساخ سطحي لمستودع قديم

إذا لم تكونوا بحاجة إلى سجل git الكامل للمستودع الذي ستعملون عليه، يمكنكم تحديد عمق الاستنساخ (clone depth) فلا تجلبون سوى آخر x من الـ commits.

ruby on rails13 أكتوبر 2020

عرض TODO والملاحظات الأخرى في تطبيق Rails

هل تعلمون أنه يمكنكم عرض جميع ملاحظات TODO وOPTIMIZE وFIXME في تطبيق Rails باستخدام rails notes؟

javascript13 أكتوبر 2020

بنية Flux بسيطة باستخدام Vue.js

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

ruby13 أكتوبر 2020

إخفاء تحذيرات rspec

$ RUBYOPT=W0 bundle exec rspec spec/ ...

ruby on rails13 أكتوبر 2020

وسم سجلات Rails بمعلومات مفيدة

تعرّفت للتو على السجلات الموسومة (tagged logging) في Rails. هل تعلمون أنه يمكنكم وسم السجل باستخدام

vim13 أكتوبر 2020

استخدام الأحرف الكبيرة في اختصارات VIM

ملاحظة: @joe، هذا هو الحل المطلوب :D

macos13 أكتوبر 2020

استخدام FFmpeg وApple Script لضغط مقاطع الفيديو

ابنوا تطبيقًا يمكنكم سحب مقاطع الفيديو وإفلاتها عليه لضغطها بشكل كبير:

shell13 أكتوبر 2020

استخدام `host` للحصول على مزيد من المعلومات عن النطاقات

ربما تستخدمون dig لمعرفة سجلات A وCNAME وMX وغيرها لنطاق ما من خوادم DNS. لكن إذا أردتم نظرة عامة سريعة فقط، فاستخدموا host:

ruby on rails13 أكتوبر 2020

استخدام minItems وmaxItems في مخططات JSON للمجموعات

لجعل مخططات JSON الخاصة بالمجموعات أكثر موثوقية، استخدموا minItems وmaxItems حتى تثقوا بواجهة API الخاصة بكم.

vim13 أكتوبر 2020

استخدام Neovim كأداة difftool في git

ما عليكم سوى لصق ما يلي في ملف ~/.gitconfig

shell13 أكتوبر 2020

استخدام ميزة الأسماء المستعارة (aliases) في Git

يتيح لكم Git إنشاء أسماء مستعارة داخليًا عبر ملف الإعدادات. ويُفترض أن يكون ملف الإعدادات العام في ~/.gitconfig

shell13 أكتوبر 2020

متابعة حالة CI على Github

عندما تكون أداة hub من Github مثبّتة لديكم، يمكنكم معرفة حالة CI للـ branch الحالي على النحو التالي:

ruby13 أكتوبر 2020

يمكنكم استخدام FactoryBot مع نماذج لا تعتمد على ActiveRecord

يمكنكم استخدام الدالة initialize_with في FactoryBot لتهيئة الكائن بالطريقة التي تريدونها، مما يتيح لكم إنشاء factories لأي من كائناتكم كما تشاؤون

shell13 أكتوبر 2020

دالة Zsh لعرض شجرة الملفات

عند التنقل بين المجلدات في سطر الأوامر، يفيد غالبًا رؤية بنية المجلدات والمجلدات الفرعية بتنسيق "شجرة". ورغم وجود أدوات كثيرة لذلك، مثل…

هل لديكم فكرة مشروع؟

يسعدنا أن نتعرّف على ما تبنونه.

ابدأوا المحادثةhello@oozou.com
OOZOU Logo

بانكوك · سنغافورة · هونغ كونغ

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

الخدمات

  • تطوير الويب
  • وكلاء الذكاء الاصطناعي والذكاء الاصطناعي التوليدي
  • تطوير تطبيقات الجوال
  • تحليلات البيانات وهندستها
  • تصميم تجربة المستخدم وواجهته (UX/UI) وتصميم المنتجات
  • التحوّل الرقمي

الشركة

  • من نحن
  • الوظائف
  • المدونة
  • دراسات الحالة
  • عروض حية
  • تعلّمت اليوم
  • تواصل معنا

المزيد

  • القطاعات
  • شبكة الشركاء
© 2026 OOZOU. جميع الحقوق محفوظة.
سياسة الخصوصيةمدونة قواعد السلوكسياسة مكافحة الرشوة والفساد