لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 07/29/22 في كل الموقع
-
1 نقطة
-
getdataCat تعيد قائمة إن كانت قائمة أغراض برمجية، أي العنصر فيه عدة قيم سوف تكون قائمة من dynamic لأذلك نعدل نمط إرجاع الدالة Future<<List<dynamic>> getdataCat().. Future.value(responsebody); وإذا كانت تعيد سلاسل نصية؟ نوع القيمة المعادة يجب أن يكون نفسه من نمط ما تحسبه و تعيده الدالة. Future<<List<String>> getdataCat().. Future.value(responsebody); أي ما يعيده jsonDecode إن كان كما قلت فسوف نعيد تعديل نمطه من dynamic إلى string jsonDecode(responsebody).cast<List<String>();1 نقطة
-
1 نقطة
-
1 نقطة
-
1 نقطة
-
سبب الشكلة هو نمط الإعادة للدالة getdataCat حاول عملها أن تعيد كالتالي: if (responsebody.length >0){ return Future.value(responsebody); } ربما تعدل تعريف الدالة: Future<List<String>> getdataCat()1 نقطة
-
أرجو تمرير الدالة بالاسم فقط، وليس تنفيذها future: getdataCat(), ^^^ => future: getdataCat, حيث أن هذا ما يسبب التنفيذ المباشر1 نقطة
-
1 نقطة
-
أحاول أن أقوم بإرسال رسالة بريد إلكرتوني من خلال الكود التالي: Mail::send('emails.first_welcome', array(), function($email) use ($request){ $email->to($request->email)->subject('Hello'); }); إذا ظهرت الأخطاء الكود السابق، أود أن أتمكن تشغيل جملة catch. لذلك قمت بإستعمال try .. catch كما يلي: try{ Mail::send('emails.first_welcome', array(), function($email) use ($request){ $email->to($request->email)->subject('Hello'); }); } catch(Exception $e){ // لا يعمل أبدًا } المشكلة هنا أن catch لا تعمل على الإطلاق، قمت بتجربة بريد إلكتروني غير صحيح، وأخطاء كثيرة ومتعددة، ولكن في كل مرة يظهر الخطأ (أي أن catch لا تعمل على الإطلاق). ما الخطأ هنا؟ وكيف أقوم بحل هذه المشكلة؟1 نقطة
-
في لارافيل Laravel يمكن عمل authentication للمستخدمين الموجودين في الجدول users، ولكن لدي جدول باسم admins ويحتوي على مجموعة من المستخدمين، وأريد أن أقوم بعمل authentication لأحد المستخدمين من هذا الجدول. فكرت في عمل AuthServiceProvider خاص بي لكي أتمكن من هذا الأمر، ولكن لا أعرف من أين أبدأ أو كيف أقوم بعمله. كيف أقوم بعمل authentication للمستخدمين الموجودين في جدول مختلف عن users في لارافيل Laravel؟1 نقطة
-
السلام عليكم اريد ان اعرف كيف يكون الاختبار في نهايه الدوره هل يكون نظري ام محادثه صوتيه ام project1 نقطة
-
السلام عليكم, في الصورة أعلاه من التوثيق الرسمي لإطار لارافل, تقول بأنه إذا كان الصنف User لايستخدم العمود id كمفتاح أولي أو كنا نرغب بالعثور على النمودج المرتبط بإستعمال عمود آخر نمرر معامل ثالت لعمود من نفس الننمودج, لم أفهم جيدا مايقصد بذلك, مثلا لدينا جدول User : $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->foreignId('current_team_id')->nullable(); $table->string('profile_photo_path', 2048)->nullable(); $table->timestamps(); ومررت أنا العمود email كمعامل ثالت : /** * Get the user that owns the phone. */ public function user() { return $this->belongsTo(User::class, 'foreign_key', 'email'); } ما الذي يؤثر على إسترجاع القيمة ؟ Phone::find($id)->user وشكرا لكم جمعة مباركة1 نقطة
-
المعامل الثالث هو إسم الحقل في النموذج الأب الذي يُشير إليه إسم الحقل الخاص بالمفتاح الثانوي في النموذج الإبن بالنسبة للعلاقة الموجودة بينهما. بفرض أنه لدينا 3 نماذج User، Post، Comment: users: - id (primary key) - ... - code posts: - postID (primary key) - ... comments: - commentID (primary key) - postID ---> posts - postID - token ---> users - code - ... لو أردنا تعريف العلاقة post التي تربط بين النموذج Comment و النموذج Post من خلال العمود postID في الجدول comments الذي يُشير إلى العمود postID في الجدول posts و الذي يُعتبر في هذه الحالة مفتاح أولي سنكتب: public function post() { return $this->belongsTo(Post::class, 'postID'); } يجب تمرير المُعامل الثاني الذي يُشير إلى المفتاح الأجنبي، لأنه إذا لم نُمرره ستتوقع لارافل أن إسم الحقل هو post_id و ليس postID و سيحدث خطأ. بخصوص المعامل الثالث ستكتشفه لارافل تلقائياً بشرط إعادة تحديد إسم المفتاح الأولي في النموذج Post: protected $primaryKey = 'postID'; و إلا قم بتمرير الإسم في المعامل الثالث. وجب الذكر أن توابع مثل find و غيرها تستخدم المفتاح الأولي في عملية الإستعلام و لارافل تعتبره id لذلك إن تم تغيير الإسم يجب إعادة تعريف الخاصية primaryKey كما تم الشرح أعلاه. لو أردنا تعريف العلاقة owner التي تربط بين النموذج Comment و النموذج User من خلال العمود token في الجدول comments الذي يُشير إلى العمود code في الجدول users و الذي لا يُعتبر في هذه الحالة مفتاح أولي سنكتب: public function owner() { return $this->belongsTo(User::class, 'token', 'code'); } هنا يجب تمرير المُعاملات الثلاثة و إلا ستعتبر لارافل أن المُعامل الثاني هو owner_id، و المعامل الثالث هو id. يُنصح دائما بإتباع نفس قواعد التسمية التي يتبعها الإطار و المتعارف عليها من طرف المطورين.1 نقطة
-
لدي مشروع لارافيل Laravel كبير نوعًا، واريد أن أقوم بتخزين كل إستعلامات SQL التي تتم في التطبيق لكي أقوم بتحليلها ومحاولة تحسينها أكثر. هل يوفر لارافيل Laravel إمكانية للقيام بهذا الأمر؟ أو هل توجد حزمة تساعد على تخزين إستعلامات SQL التي يتم تنفيذها في التطبيق؟1 نقطة
-
أتذكر استخدام Laravel telescope لمثل هذا الغرض. هي ملحقة محلية ببيئة تطوير لارافيل توفر نفاصيل اكثر دقة على الطلبات الواردة إلى تطبيقك، والاستثناءات ، وإدخالات السجل، والبريد، والإشعارات، وعمليات التخزين المؤقت، والمهام المجدولة، ومن بينها استعلامات قاعدة البيانات. يمكن تثبيتها كحزمة خارجية. في القسم الخاص باستعلامات قواعد البيانات تتاح قائمة لكامل استعلامات قواعد البيانات التي تم تنفيذها. سرعة التنفيذ ومدته وتفاصيل أخرى. بجانب انها صديقة جدا لبيئة التطوير. أظن انها ما تبحث عنه. يمكنك استعمالها لتحسين جودة استعلامات قواعد البيانات لديك.1 نقطة
-
هل حاولت ذلك ونجح الأمر؟ فالغرض من كون الحقل المشار إليه مفتاحًا أوليًا هو ضمان أن القيمة التي نشير إليها تابعة لسجل واحد فقط، بينما في حال أشرنا لأي حقل آخر قد يكون هناك عدة سجلات تملك قيمته وهنا سيحدث خطأ لأن علاقة belongsTo تفترض ضمنيًا وجود سجل واحد فقط من الجدول المقابل، بغض النظر عن استعمال unique فلارافل لا يتطلع على خصائص الجدول قبل الاستعلام ليتأكد من ذلك، ويعتمد على المطور في تحديد وتمرير أسماء حقول صحيحة1 نقطة
-
تحيه طيبه للجميع أقوم بجلب قائمة من قاعدة البيانات من خلال الكود التالي: var listCat = []; Future getdata() async { apiURL = '***************.php'; var response = await http.post(Uri.parse(apiURL)); var responsebody = jsonDecode(response.body); if (responsebody.length >0){ for (int i = 0; i < responsebody.length; i++) { listCat.add(responsebody[i]['name']+ ':' + responsebody[i]['image'].toString()); } return responsebody; }else{ } } طبعا مثل ما هو واضح في الكود أعلاه انا أحاول الحصول على الاسم والصورة وهذا الامر لا توجد فيه مشكله المشكلة الان انني ارغب بتخزين هذا listCat في SharedPreferences حتى استدعيها من جميع صفحات التطبيق لدي الكلاس التالي لحفظ SharedPreferences class APIPreferences { static SharedPreferences ? _preferences; static const _keyMuinCat = 'MuinCat'; static Future init() async => _preferences = await SharedPreferences.getInstance(); static Future setMuinCat(String MuinCat) async => await _preferences!.setString(_keyMuinCat, MuinCat); static String? getMuinCat() => _preferences!.getString(_keyMuinCat); } ثم أقوم بحفظ ما احتاج الى حفظه من خلال السطر التالي من أي صفحة ارغب بذلك: APIPreferences.setMuinCat(listCat.toString()); ثم يمكنني استدعاء البيانات التي تم تخزينها مسبقاً من أي موقع احتاجه فيها من خلال الكود التالي: CatList = APIPreferences.getMuinCat() ?? ''; حاولت القيام بالامر التالي الان لحفظ القائمة في اول كود اعلاه: var listCat = []; Future getdata() async { apiURL = '***************.php'; var response = await http.post(Uri.parse(apiURL)); var responsebody = jsonDecode(response.body); if (responsebody.length >0){ for (int i = 0; i < responsebody.length; i++) { listCat.add(responsebody[i]['name']+ ':' + responsebody[i]['image'].toString()); APIPreferences.setMuinCat(listCat.toString()); } return responsebody; }else{ } } ولكن الامر لم ينجح لا اعلم حقيقه طريقة التعامل مع مثل هذا الامر لم يسبق ان تعاملت مع حفظ القوائم كيف استطيع حفظها ثم استدعيها بشكل الصحيح حتى استطيع استعملها من خلال ListView ياليت من يعلم الطريقة الصحيحة يساعدنا ولكم جزيل الشكر1 نقطة
-
إن shared preferences في Flutter تسمح لك بتخزين قائمة سلاسل نصية مباشرة من خلال الدالة setStringList كما الطريقة التالية: setStringList(String key, List<String> value) هي تماماً ما تحتاجه، لأن قائمتك عبارة عن قائمة سلاسل نصية String List. يوجد الدالة لقراءة القيمة المخزنة مسبقاً // read final myStringList = prefs.getStringList('string_list_key') ?? []; // write prefs.setStringList('string_list_key', ['wael', 'walid', 'wassim']);1 نقطة
-
في حال كان السجل من جدول النموذج Phone ينتمي لمستخدم واحد من جدول النموذج User، فطريقة الربط بين جدولين تكون بذكر المفتاح الأولي PK للمستخدم ضمن كل سجل من Phone لتكون الجداول كالتالي: | users | | phones | ----------- يشير إلى ------------- | id | <-- | user_id | المعامل الأول للتابع belongsTo هو اسم صنف النموذج الذي سيرتبط به النموذج الحالي، المعامل الثاني هو اسم المفتاح الخارجي FK من النموذج الحالي وهو user_id، أما المعامل الثالث هو المفتاح الأولي PK للجدول الذي نريد الربط معه، وآخر معاملين اختياريين عند عدم تمريرهما يمكن للارافل توقع اسماء تلك المفاتيح من اسم النموذج User، ما يشير إليه التوثيق هو الحالة التي يستخدم فيها الجدول الذي نريد الربط معه مفتاح أولي باسم مختلف عن id وهو ما يفترضه لارافل تلقائيًا عادةً، هنا يمكنك تمرير اسم المفتاح يدويًا حتى يعلم لارافل كيف يمكنه الاستعلام عن ذلك النموذج واتمام الربط بشكل صحيح : | users | | phones | ---------------------- يشير إلى ----------------------- | serial_number | <-- | user_serial_number | فتمرر أسماء المفاتيح تلك يدويًا كالتالي: public function user() { return $this->belongsTo(User::class, 'user_serial_number', 'serial_number'); }1 نقطة
-
في حال كان قصدك تخزين الاستعلام كنص ضمن قاعدة البيانات، يمكنك ذلك من خلال إضافة خدمة إلى AppServiceProvider من خلال الاستماع إلى أي استعلام يجري على مستوى التطبيق: public function boot() { DB::listen(function($query) { //يمكنك استبدال عملية الطباعة إلى تخزين المتغيرات التي ترغب بها ضمن قاعدة البيانات Log::info( $query->sql, $query->bindings, $query->time ); }); } وفي بعض النسخ السابقة من لارافل يمكن الاستماع للحدث query من خلال الطريقة التالية: DB::listen(function($query) { \Log::info($query->sql); }); أو \Event::listen('illuminate.query', function($sql) { \Log::info($sql); }); ولكن عند الاستماع لأحداث قاعدة البيانات، يجب عليك إضافة متغيّر ما والتحقق منه قبل تخزين نتيجة الاستعلام في حال كان استعلام تحليلي أو استعلام عادي ضمن التطبيق لكي لا يتم تخزين الاستعلامات التحليلية (التي تنفّذ الحدث) ضمن قاعدة البيانات1 نقطة
-
حتى في Python قد توجد مكتبات لا تدعم إصدارات حديثة من اللغة وستحتاج تطوير لتتمكن استخدامها، الحل في أي لغة برمجة عند الاعتماد على المكتبات محاولة اختيار المدعومة والمشهورة منها، فمطوريها سيحدثونها باستمرار وستتمكن من الحصول على النسخة التي تناسبك دون القلق حول التوافق مع إصدار اللغة1 نقطة
-
العفو ، بخصوص هذا المسارات لقد تم تحديث الدروس الموجودة فيه ويمكنك عدم متابعتها والاكتفاء بالدروس المحدثة.1 نقطة
-
السلام عليكم, سبب المشكلة تعارضات في إصدار لارافل مثل ماقلت اخي عدنان, لهذا قمت بإلغاء التضمين للاصول عن طريق vite و ضمنتها كالتالي : <script src="{{ asset('js/app.js') }}"></script> <link rel="stylesheet" href="{{ asset('css/app.css') }}"> قبل ذلك لم ازل سطر التضمين عن طريق vit لهذا لم تحل المشكلة, شكرا1 نقطة
-
مرحبا أخى. يمكنك إستخدام ال validation بهذه الطريقة { 'api_key' => 'required|integer', 'tags' => 'required', 'posts' => 'required|array|min:1|max:20', 'posts.title' => 'required|string|min:5', 'posts.content' => "required|string|min:5', } حيث يمكنك التحقق من أى عنصر متداخل عن طريق وضعه بعد ال parent مسبوقا بنقطة.1 نقطة
-
الفكرة هي أن هذا الموضوع نفسه قد تم وصفه في دليل التحديث الخاص بلارافيل 8 من نسخ سابقة كتحديث عال التأثير High Likelihood Of Impact لأن منشئات البذرة database seeders و معامل النماذج model factories ابتداءا من هاته النسخة عرفت ضمن نطاقات اسماء namespaces . اذ تقوم لارافيل بالتعرف عليها وتحميلها تلقائيا من ملف composer.json عن طريق معيار psr-4 وهو احد معايير التحميل التي شاع استخدامها في لارافيل. لفعل ذلك، أضف تعيينات نطاقات الاسماء الجديدة ضمن كائن psr-4 في autoload: "autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, وبالطبع لا تنسى ازالة كائن classmap من autoload: "classmap": [ "database/seeds", "database/factories" ] استفد اكثر من هاته الاجابة1 نقطة
-
webpack في الاصل هو مجمع ملفات او بشكل ادق مجمع وحدات module bundler تقوم بتجميع عدد من ملفات الجافاسكربت، الـ HTML والcss لتجعلها في ملف واحد، وبهذا المنطق تتيح الكثير من الميزات الأخرى على سبيل: امكانية تقسيم الشيفرات وتجزئتها. استخدام المحملات لتحميل وتفسير انواع معينة من الملفات مثل sass. فصل بيئة التطوير عن بيئة الانتاج. وغيرها الكثير.. عيب هاته الطريقة انها قد تأخذ الكثير من الوقت أثناء عملية التطوير. لنقل مثلا أنك تستخدم 2000 وحدة نمطية في تطبيق كبير لديك. الآن عملية بناء او تجميع او تحزيم هاته الوحدات قد ياخذ وقتا طويلا جدا بادئ الأمر. ثم ستكون عملية الاستماع الى التغييرات هي الأخرى بطيئة (رغم التخزين المؤقت) لأن ويب باك تقوم كل مرة بإعادة تجميع كامل الملفات واخراجها في ملف واحد كل مرة ولا تستثني الملفات الغير معدلة، هذا بجانب تشغيل كامل المحملات والوحدات الاخرى. ويتم تقديم laravel-mix كآداة توفر واجهة تطبيقات برمجية للعمل بـ webpack بشكل أكثر فعالية في تطبيقات لارافيل لذات الغرض السابق. يأتي Vite هنا لتقديم حل استثنائي لتحسين تجربة التطوير وتسريعها، فالفكرة الاساسية منه هو تحويل وتقديم جزء من شيفرة التطبيق الخاص بك عندما يطلب المتصفح ذلك وفقط. فعند بداية عملية التطوير سيقوم Vite بتقسيم وحدات جافاسكربت الخاصة بك الى فئتين: dependency modules أو وحدات التبعية، وهي الوحدات التي يتم تحميلها وطلبها من node_modules. يتم ذلك عن طريق مجمع يدعى esbuild هو مكتوب بلغة Go ويعد اسرع بـ 10 الى 100 مرة من ويب باك. application modules او وحدات التطبيق، وهي الوحدات التي تشتغل عليها او بالأحرى هي ملفات تطبيقك. ويبباك تقوم بتجميع كل ما ينتمي لكليهما واخراجهما في ملف واحد كل مرة تطلبه. يدعى هذا بـ bundler-based workflow او سير العمل القائم على التحزيم. Vite تقوم فقط بتجميع وحدات التبعية الخاصة بك، في حين ان وحدات التطبيق تقدم فقط حينما يتم طلبها او في لحظة ما تكون مستعملة من طرف صفحة ما او مكون ما. تسمي Vite هذا بـ vite ESM-based dev build أو سير العمل القائم على وحدات ES. بمعنى أنه قادر على معالجة التطوير الخاص بك بشكل أسرع كثيرا من Webpack. وقد لا تلحظ هذا مع تطبيقات عادية، ولكن ستزداد الحاجة الى تجميع اسرع مع ازدياد حاجيات التطبيق وتوسعه. وبما أنه يخدم مفهوم التوسع scalability أكثر من ويب باك فإن لارافيل ضمته إليها هذا الاسبوع فقط ليزيد من حظ وقدرة لارافيل في بناء تطبيقات بأحجام عملاقة، بجانب المحافظة على تجربة تطوير جيدة الى ممتازة. يتفائل الكثير من المطورون باستعمال لارافيل له، ويرون أنه الجيل الجديد من ادوات بناء جافاسكربت بخدمته لمفهوم الوحدات في المتصفح، وهو مفهوم لم يكن شائعا قبله. وكتجربة شخصية، عملت بـ Vite في تطبيق واجهة أمامية بـ VueJS وكانت تجربة التطوير رائعة مقارنة بالتطبيقات التي اعتمدت على ويب باك فيها. وبما أن Vite مقدم من مطوري VueJS أنفسهم فأظن أنه سيكون هنالك تقارب أكثر بين VueJS و Laravel في المستقبل.1 نقطة
-
حتى تفهم الفرق بين NFA و DFA في التحويل بينهما ف NFA يمكن أن تحتوي على صفر أو حركة واحدة أو أكثر من حالة معينة على رمز إدخال معين أيضا يمكن أن تحتوي NFA أيضًا على حركات NULL (تحركات بدون رمز إدخال). من ناحية أخرى، فإن DFA لديه حركة واحدة فقط من حالة معينة على رمز إدخال معين. أما خطوات التحويلمن NFA إلى DFA هي كالتالي: الخطوة 1: في البداية Q '= ϕ الخطوة 2: أضف q0 من NFA إلى Q '. ثم ابحث عن الانتقالات من حالة البداية هذه. الخطوة 3: في Q '، ابحث عن مجموعة الحالات الممكنة لكل رمز إدخال. إذا لم تكن هذه المجموعة من الحالات في Q '، فقم بإضافتها إلى Q'. الخطوة 4: في DFA ، ستكون الحالة النهائية هي جميع الولايات التي تحتوي على F (الحالات النهائية لـ NFA) وستجد من هنا شرح تطبيقي مع أمثلة للتحويل ومن هنا شرح مفصل من قناة الأخ العلالي.1 نقطة
-
يؤكد الكثير من رواد الأعمال والمهنيين المحترفين على أنه من الصعب جداً أن تجد وقتاً للمشاريع الشخصية والعاطفية. وحتى ما تحترف القيام به يمكن أن يكون له تأثير كبير على حياتك أو مهنتك. يظهر هذا التأثير جليّا مع وجود العائلة والمسؤوليات الأخرى. يعدّ وقت الفراغ بالنسبة للكثيرين منا ترفًا، ويَسوق أحلامَ الكثير منا على نحو واضح خطٌّ رفيع من المسكّنات والكافيين. مدخل: مشروع ليوم واحد في محاولة لوقف الإفراط في الدخول إلى الكثير من التفاصيل التي تقود إلى الإرهاق وفقدان مسار تدفق الحياة، مع كتلة كبيرة من الأفكار مثل “لا أستطيع”، أو “ليس هناك ما يكفي” أو “لا توجد طريقة”، سعيت لإيجاد مشروع يمنحنا القدرة على التفكير الخلاق بالإضافة للكثير من الطاقة التي نحتاجها للمضي قدماً، وقد أطلقت على هذا المشروع اسم “مشروع ليوم واحد” :ما هو الشيء الواحد الذي يمكنك القيام به من البداية إلى النهاية في يوم واحد؟ وكيف لهذا الشيء الواحد أن يحقق أهدافك الخاصة أو أهدافك تجاه الحياة والعمل؟ قررت يوم أمس أنه قد آن الأوان لفعل شيء ما، وقررت في لحظة صفاء إبداعية مقابلة رجال أعمال ورياديين بهدف سرد قصصهم ضمن سلسلة قصيرة عن المبدعين بمساعدة بعض الأصدقاء، في مسعى لمساعدة الآخرين الذين يفكّرون ببدء عمل تجاري. كنت متردداً في تحديد المواعيد بسبب انشغالي بالتفكير في كيف يمكن لهذا المشروع أن يُحدث تغييراً. يمكن أن يكون لديك علاج لمرض السرطان ولكن إن لم يكن أحد يعلم بوجوده فلن ينقذ هذا العلاج أي حياة. وحتى الآن كل حصيلتي هي اسم وشعار، وذلك لن يخدم مشروعي أي شخص. لا بُد إذن من التحرك للأمام بضع خطوات. حجزت مساء يوم الجمعة لقاء مع رجل أعمال محلي لديه مصبغة محلية لغسيل الملابس ويعمل على وضع شعار الحي على القمصان ليشعر السكان بالاعتزاز لانتمائهم لنفس الحي. يتبرع صاحب المشروع بنسبة 10% من أرباحه للجمعيات الخيرية، وأرباحه في زيادة مضطردة. كل هذا وهو يعمل في وظيفة يوميّة عادية. التقينا في الساعة 11:30 ثم بدأنا التصوير في 11:45، وانتهينا بحلول الواحدة ظهرا. قمت بعملية المونتاج على الفيلم لمدة ساعتيْن إلى ثلاث، في فترة بعد الظهر. حمّلتُ الفيديو بحلول الساعة 7 مساء. الدافع للحصول على الإبداع علاوة على ذلك، توصلت لاتفاق مع صديق لي لعمل ما هو أكثر بكثير في هذا المنحى، ودفعني للحصول على التزام مني بتسجيل تدوينات صوتية Podcasts في الأسبوعين القادمين. هل يمكنك تخمين الفكرة التاليّة لـ”مشروع ليوم واحد”؟ يمكن للحفاظ على الدافع - وقد لا تكون أفضل طريقة لك وشخصياً لا أوصي بها - أن تفكر باتّخاذ شريك لك، أو تنظيم جماعة للعمل على أن تكون منسّقها. يمكنك كذلك استخدام تطبيق مثل Chains الذي يستخدم منهجيّة Jerry Seinfeld المعروفة باسم “لا لكسر السلسلة” Don’t break the chain، وهي منهجية للحفاظ على الدافع الخاص بك. يمكنك كذلك تُعيد تشكيل تقنية تجعلك مسؤولاً أمام نفسك من خلال استكمال مهمة عينتها لنفسك في يوم أو أسبوع. كيف تتصرف إن لم يكن لديك وقت؟ إذا كنت تعاني من نقص الوقت، مثل معظمنا، فيمكنك القراءة حول كيفية العثور على الزمان والمكان للعمل الهادف. وبالنسبة لي، فقد خصصت يوم السبت لمشاريعي الخاصة. وبطبيعة الحال هذا يتوقف على ما يجري في حياتنا. يمكنك تخصيص ساعة في الأسبوع، وتحجزها ضمن جدول أعمالك المزدحم ثم ترى ما يمكنك إنجازه من البداية إلى النهاية في هذه الساعة. إنها خطوة تجعلك أقرب لتحقيق أهدافك الشخصية أو المهنية. أتمنى لكم حظاً سعيداً وأحب أن أسمع منكم حول شيء مثير للاهتمام تقومون به من البداية إلى النهاية خلال ساعة، يوم، أو أسبوع. ترجمة - بتصرّف - للمقال One Day Project — A cure for inaction and analysis paralysis لصاحبه Ernest Barbaric. حقوق الصورة البارزة محفظة لـ Freepik1 نقطة