لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 08/28/15 في كل الموقع
-
الإصدار 2.0.0
44879 تنزيل
كثر العاملون عن بعد في اﻷعوام الأخيرة إما عملًا حرًا أو نظاميًا، وقفز هذا النمط قفزات كبيرة وتغير كذلك عدة مرات في تلك الأعوام، وربما نشهد استقرارًا نسبيًا لتقلباته على المدى القريب، وإن كان الإصدار الأول من هذا الكتاب منتصف عام 2015 يبشِّر به ويدعو الناس إليه وإلى مزايا التعامل مع الموظفين عن بعد، كان لزامًا علينا تحديث الكتاب وإصدار هذه النسخة التي سنتوسع فها ونتعرض للمشاكل التي تواجه الذين يوظِّفون عن بعد، فقد طرأت مشاكل جديدة لم تكن موجودة من قبل استحداث هذا النمط من العمل، وسنذكر بعض الحلول لتلك المشاكل مما رأيناه في السوق أو جربناه بأنفسنا. وكانت الوظائف التي تسمح بالعمل عن بعد في الغالب في المجال التقني أو المجالات التي تعتمد على التقنية في مهامها اليومية، حيث يكون المنتج مادة تُنشأ وتعالَج وتُخرَج على الحواسيب، إما برمجيات أو تصاميم أو نصوص أو مرئيات أو مواد مالية أو غيرها، على عكس المجالات التي تكون المنتجات فيها حقيقية مثل المصانع والمتاجر التي لا بد من تواجد حقيقي للموظفين في محل الإنتاج أو البيع، فازدهرت الشركات المتخصصة في تلك المجالات التي تعتمد أساسًا على نهج العمل البعيد وبدأت شركات كثيرة بتبنيه وفقًا لما يناسبها طبعًا، وهنا أردنا تبيان الطريق الصحيح الذي يسهِّل على صاحب الشركة تبني مفهوم العمل عن بعد ويوصل بشركته إلى النجاح، فرأينا أن نضع هذا الكتاب بين يديك ليكون عونًا ودليلًا ومرجعًا. هذه النسخة موجَّهة في الأساس إلى رواد الأعمال وأصحاب الشركات الذين يودون تأسيس شركة تعمل عن بعد أو لديهم شركة قائمة تقليدية تعمل من مقر حقيقي ويريدون تحويلها إلى شركة بعيدةً سواءً كليًا أو جزئيًا، أما إن كنت عاملًا تعمل عن بعد، سواءً موظفًا أو مستقلًا، فنحيلك هنا إلى كتاب دليل المستقل والعامل عن بعد. ونرجو بهذا العمل أن نكون قد وُفقنا في وضع مرجع بين يديك يؤهلك لتأسيس شركة تعمل عن بعد ويرشدك إلى أهم نواحي إدارتها وتوظيف مختلف الكفاءات فيها، بل وحتى تطويرها والانطلاق بها نحو النجاح، عسى أن نرى الكثير من الشركات العربية التي تخدم سوق العمل وتقوده نحو التطور والنجاح. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات نسردها بالترتيب التالي: مدخل إلى العمل عن بعد تأسيس بيئة عمل عن بعد أساسيات التوظيف عن بعد آليات الإدارة والتطوير لشركة تعمل عن بعد تحديات العمل عن بعد والإدارة البعيدة استقرار وتطور الشركات العاملة عن بعد1 نقطة -
يعتبر Laravel أشهر إطار ويب بلغة PHP، ولقد شهد إصداره الخامس العديد من التغييرات وتمت إضافة الكثير من المميزات الجديدة، ولذلك لتعلم أساسيات هذا الإطار سوف نقوم بإنشاء تطبيق Todo List، وسوف نتعلم من خلال هذا التطبيق الكثير من المفاهيم والطرق البرمجية حتى نتمكن من التعامل والتوسع مع إطار Laravel 5. ملاحظة: هذا الدرس طويل للغاية لذلك سوف يتم تقسيمه إلى أجزاء أصغر، ويمكنك الحصول على الكود المصدري لكل جزء من GitHub. في هذا الدرس سوف نتحدث عن تثبيت Laravel 5 وإعداده وعن بعض التقنيات الجديد كالتهجير migration والبذر seeding. قبل أن نبدأ أهم المصطلحات التي ستصادفنا في هذه الدروس: التهجير migration: نظام لإدارة قواعد البيانات، فهو يسمح للفريق بتعديل مخطط قواعد البيانات لجميع الأعضاء. البذر seeding: يقصد بها إدخال البيانات الأولية لتجربة التطبيق، أي أنه سيقوم بإدخال بيانات لمساعدتك على التطوير واكتشاف الأخطاء. هدف المشروع سوف يتكون تطبيقنا من مشروع أو أكثر، كل واحد لديه قائمة مهام خاصة به، وسوف تتمكن من إنشاء وعرض وتعديل وحذف المهام والمشاريع. في هذا الدرس سوف نقوم بـ: إعداد وتنصيب Laravel. تركيب حزم إضافية لتسهيل عملية التطوير. استخدام التهجير migration والبذر seeds. تعلم كيفية استخدام متحكِّمات الموارد resourceful controllers. تعلم كيفية استخدام العروض views. (بما في ذلك نظام blade ومخططات المحتوى) التعامل مع علاقات النماذج. التثبيت إن عملية تثبيت Laravel سهلة للغاية بفضل Composer، لذلك سوف نستخدمه في تثبيته. استخدام Composer والآن نقوم بتشغيل مثبت Laravel (سوف تحتاج إلى عمل هذا لمرة واحدة فقط): composer global require "laravel/installer=~1.1" والآن نقوم بعمل مشروعنا: laravel new l5todo الإعداد يستخدم Laravel 5 حزمة تدعى DotEnv تقوم بتخزين المعلومات الحساسة في ملفات ذات صيغة .env والتي يتم تحميلها كمتغيرات PHP عند التشغيل. قد يبدوا لك هذا معقدا لكن بكلمات أخرى، هذا يعني أن فقط الإعدادات الحسّاسة credentials يتم تخزينها في هذه الملفات وأما بقية إعداداتك فيتم تخزينها في ملفات الإعداد العادية. قاعدة البيانات سوف نحتاج إلى قاعدة بيانات، لذلك سنقوم بعمل واحدة ثم سنقوم بنسخ .env.example إلى .env وتحديث البيانات على الشكل التالي: DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret في النهاية إذا لم تكن تستخدم MySQL فقُم بفتح config/database.php/ ثم قٌم بتغيير السطر الافتراضي: 'default' => 'mysql', تذكر أن تضيف ملفات بيئة عملك إلى .gitignore عن طريق إضافة سطر .env. خطواتنا الأولى كما ذكرنا في الأعلى، سوف يتكون تطبيق قائمة المهام على مشروع أو أكثر كل واحد مع قائمة المهام الخاصة به، ولذلك سوف نحتاج إلى مشروع، نماذج مهام، متحكِّمات، عروض views، التهجير migration، البذور seeds والطرق routes، ولقد قمنا بشرح بعض هذه المصطلحات في بداية الدرس. لنبدأ بالتعامل معهم كل واحد على حدة. التهجير migration أولا نريد أن نرى مخطط جدولنا، سوف يبدو مثل هذا: Projects +------------+------------------+------+-----+ | Field | Type | Null | Key | +------------+------------------+------+-----+ | id | int(10) unsigned | NO | PRI | | name | varchar(255) | NO | | | slug | varchar(255) | NO | | | created_at | timestamp | NO | | | updated_at | timestamp | NO | | +------------+------------------+------+-----+ Tasks +-------------+------------------+------+-----+ | Field | Type | Null | Key | +-------------+------------------+------+-----+ | id | int(10) unsigned | NO | PRI | | project_id | int(10) unsigned | NO | MUL | | name | varchar(255) | NO | | | slug | varchar(255) | NO | | | completed | tinyint(1) | NO | | | description | text | NO | | | created_at | timestamp | NO | | | updated_at | timestamp | NO | | +-------------+------------------+------+-----+ ثم سوف نقوم بعمل التهجير migration: php artisan make:migration create_projects_and_tasks_tables --create="projects" سوف نقوم بعمل كِلا الجدولين بتهجير migration واحد حتى نتمكن من حذفها بترتيب عكسي لتجنب سلامة خرق القيد integrity constraint violation، قُم بفتح: /database/migrations/createprojectsandtasks_tables.php وقُم بتحديث المعلومات حسب الآتي: <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateProjectsAndTasksTables extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('projects', function(Blueprint $table) { $table->increments('id'); $table->string('name')->default(''); $table->string('slug')->default(''); $table->timestamps(); }); Schema::create('tasks', function(Blueprint $table) { $table->increments('id'); $table->integer('project_id')->unsigned()->default(0); $table->foreign('project_id')->references('id')->on('projects')->onDelete('cascade'); $table->string('name')->default(''); $table->string('slug')->default(''); $table->boolean('completed')->default(false); $table->text('description')->default(''); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('tasks'); Schema::drop('projects'); } } قم بتنفيذ الهجرة migration: php artisan migrate إذا قمت الآن بمراجعة قاعدة البيانات، يجب أن تكون الجداول مكتملة. البذور Seeds سوف نحتاج إلى بذر المشاريع/المهام ليكون لديك شيء للعمل معه عندما نصل إلى المتصفح، لذلك قم بإنشاء: /database/seeds/ProjectsTableSeeder.php و TasksTableSeeder.php كالتالي: // /database/migrations/seeds/ProjectsTableSeeder.php <?php use Illuminate\Database\Seeder; class ProjectsTableSeeder extends Seeder { public function run() { // Uncomment the below to wipe the table clean before populating DB::table('projects')->delete(); $projects = array( ['id' => 1, 'name' => 'Project 1', 'slug' => 'project-1', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 2, 'name' => 'Project 2', 'slug' => 'project-2', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 3, 'name' => 'Project 3', 'slug' => 'project-3', 'created_at' => new DateTime, 'updated_at' => new DateTime], ); // Uncomment the below to run the seeder DB::table('projects')->insert($projects); } } // /database/migrations/seeds/TasksTableSeeder.php <?php use Illuminate\Database\Seeder; class TasksTableSeeder extends Seeder { public function run() { // Uncomment the below to wipe the table clean before populating DB::table('tasks')->delete(); $tasks = array( ['id' => 1, 'name' => 'Task 1', 'slug' => 'task-1', 'project_id' => 1, 'completed' => false, 'description' => 'My first task', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 2, 'name' => 'Task 2', 'slug' => 'task-2', 'project_id' => 1, 'completed' => false, 'description' => 'My first task', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 3, 'name' => 'Task 3', 'slug' => 'task-3', 'project_id' => 1, 'completed' => false, 'description' => 'My first task', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 4, 'name' => 'Task 4', 'slug' => 'task-4', 'project_id' => 1, 'completed' => true, 'description' => 'My second task', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 5, 'name' => 'Task 5', 'slug' => 'task-5', 'project_id' => 1, 'completed' => true, 'description' => 'My third task', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 6, 'name' => 'Task 6', 'slug' => 'task-6', 'project_id' => 2, 'completed' => true, 'description' => 'My fourth task', 'created_at' => new DateTime, 'updated_at' => new DateTime], ['id' => 7, 'name' => 'Task 7', 'slug' => 'task-7', 'project_id' => 2, 'completed' => false, 'description' => 'My fifth task', 'created_at' => new DateTime, 'updated_at' => new DateTime], ); //// Uncomment the below to run the seeder DB::table('tasks')->insert($tasks); } } ولا تنسَ إضافة أصناف البذور(seed classes) إلى database/seeds/DatabaseSeeder.php/ : use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); $this->call('ProjectsTableSeeder'); $this->call('TasksTableSeeder'); } } الآن نقوم بالبذر: composer dump-autoload ثم: php artisan db:seed # أو php artisan migrate:refresh --seed يجب الآن أن تكون قاعدة البيانات قد تم بذرها. mysql> select * from projects; +----+-----------+-----------+---------------------+---------------------+ | id | name | slug | created_at | updated_at | +----+-----------+-----------+---------------------+---------------------+ | 1 | Project 1 | project-1 | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | | 2 | Project 2 | project-2 | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | | 3 | Project 3 | project-3 | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | +----+-----------+-----------+---------------------+---------------------+ mysql> select * from tasks; +----+------------+--------+--------+-----------+----------------+---------------------+---------------+ | id | project_id | name | slug | completed | description | created_at | updated_at | +----+------------+--------+--------+-----------+----------------+---------------------+---------------+ | 1 | 1 | Task 1 | task-1 | 0 | My first task | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | 2 | 1 | Task 2 | task-2 | 0 | My first task | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | 3 | 1 | Task 3 | task-3 | 0 | My first task | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | 4 | 1 | Task 4 | task-4 | 1 | My second task | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | 5 | 1 | Task 5 | task-5 | 1 | My third task | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | 6 | 2 | Task 6 | task-6 | 1 | My fourth task | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 | 7 | 2 | Task 7 | task-7 | 0 | My fifth task | 2015-02-05 01:25:43 | 2015-02-05 01:25:43 +----+------------+--------+--------+-----------+----------------+---------------------+---------------+ النماذج Models للعمل مع جداول المشاريع والمهام نحتاج إلى نماذج مماثلة، سوف نقوم بإنشائها الآن: php artisan make:model Project php artisan make:model Task كان هذا سهلا استخدام Artisan – Tinker الآن لدينا المعلومات في قاعدة البيانات وسيكون من الرائع أن نتعلم حول واحدة من أهم ميزات artisan وهي Tinker الذي يوفر لك سطر أوامر للتعامل مع Laravel، وكمثال، لنستخدمه في معرفة عدد المشاريع في قاعدة البيانات الحالية: $ php artisan tinker > App\Project::count(); 3 > App\Task::count(); 7 وكما ترى يمكن أن يكون Tinker مفيدا للغاية، لذلك سوف نستخدمه عدة مرات في هذه السّلسلة. المُتحكِّمات Controllers الآن وصلنا إلى النقطة التي سوف نبدأ بعرض ما صنعناه على المتصفح، وسوف نحتاج إلى إنشاء بعض المتحكِّمات Controllers والطرق Routes. سنبدأ أولا بالمتحكِّمات: php artisan make:controller ProjectsController php artisan make:controller TasksController الموارد المُضمّنة نبدأ بإضافة موارد Project و Task إلى app/Http/routes.php/ : Route::get('/', 'WelcomeController@index'); //Route::get('home', 'HomeController@index'); // //Route::controllers([ // 'auth' => 'Auth\AuthController', // 'password' => 'Auth\PasswordController', //]); Route::resource('projects', 'ProjectsController');Route::resource('tasks', 'TasksController'); والآن دعونا نرى إحدى مميزات artisan والمُتمثّلة في route:list، في سطر الأوامر أكتب التالي: php artisan route:list لتكون النّتيجة +--------+----------+--------------------------+------------------+-------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+--------------------------+------------------+-------------------------------------------------+------------+ | | GET|HEAD | / | | App\Http\Controllers\WelcomeController@index | | | | GET|HEAD | projects | projects.index | App\Http\Controllers\ProjectsController@index | | | | GET|HEAD | projects/create | projects.create | App\Http\Controllers\ProjectsController@create | | | | POST | projects | projects.store | App\Http\Controllers\ProjectsController@store | | | | GET|HEAD | projects/{projects} | projects.show | App\Http\Controllers\ProjectsController@show | | | | GET|HEAD | projects/{projects}/edit | projects.edit | App\Http\Controllers\ProjectsController@edit | | | | PUT | projects/{projects} | projects.update | App\Http\Controllers\ProjectsController@update | | | | PATCH | projects/{projects} | | App\Http\Controllers\ProjectsController@update | | | | DELETE | projects/{projects} | projects.destroy | App\Http\Controllers\ProjectsController@destroy | | | | GET|HEAD | tasks | tasks.index | App\Http\Controllers\TasksController@index | | | | GET|HEAD | tasks/create | tasks.create | App\Http\Controllers\TasksController@create | | | | POST | tasks | tasks.store | App\Http\Controllers\TasksController@store | | | | GET|HEAD | tasks/{tasks} | tasks.show | App\Http\Controllers\TasksController@show | | | | GET|HEAD | tasks/{tasks}/edit | tasks.edit | App\Http\Controllers\TasksController@edit | | | | PUT | tasks/{tasks} | tasks.update | App\Http\Controllers\TasksController@update | | | | PATCH | tasks/{tasks} | | App\Http\Controllers\TasksController@update | | | | DELETE | tasks/{tasks} | tasks.destroy | App\Http\Controllers\TasksController@destroy | | +--------+----------+--------------------------+------------------+-------------------------------------------------+------------+ ستلاحظ أن كل من projects و tasks هي روابط ذات مستوى عالي، وفي تطبيقنا، المهام تتبع المشاريع، لذلك سيكون من الأفضل للروابط أن تكون مُضمّنة مثل /projects/1/tasks/3 بدلا من /tasks/، وهذا يمكن فعله باستخدام شيء اسمه الموارد المُضمّنة nested resources، وكما هو الحال مع أغلب الأشياء في Laravel، التعديل المطلوب سريع وبسيط، فقط قٌم بفتح /app/Http/routes.php وقٌم بالتعديلات التالية: // Route::resource('tasks', 'TasksController'); Route::resource('projects.tasks', 'TasksController'); هذا كل شيء، قُم بكتابة php artisan route:list لنعلم ماذا لدينا لحد الآن: php artisan route:list +--------+----------+----------------------------------------+------------------------+-------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+----------------------------------------+------------------------+-------------------------------------------------+------------+ | | GET|HEAD | / | | App\Http\Controllers\WelcomeController@index | | | | GET|HEAD | projects | projects.index | App\Http\Controllers\ProjectsController@index | | | | GET|HEAD | projects/create | projects.create | App\Http\Controllers\ProjectsController@create | | | | POST | projects | projects.store | App\Http\Controllers\ProjectsController@store | | | | GET|HEAD | projects/{projects} | projects.show | App\Http\Controllers\ProjectsController@show | | | | GET|HEAD | projects/{projects}/edit | projects.edit | App\Http\Controllers\ProjectsController@edit | | | | PUT | projects/{projects} | projects.update | App\Http\Controllers\ProjectsController@update | | | | PATCH | projects/{projects} | | App\Http\Controllers\ProjectsController@update | | | | DELETE | projects/{projects} | projects.destroy | App\Http\Controllers\ProjectsController@destroy | | | | GET|HEAD | projects/{projects}/tasks | projects.tasks.index | App\Http\Controllers\TasksController@index | | | | GET|HEAD | projects/{projects}/tasks/create | projects.tasks.create | App\Http\Controllers\TasksController@create | | | | POST | projects/{projects}/tasks | projects.tasks.store | App\Http\Controllers\TasksController@store | | | | GET|HEAD | projects/{projects}/tasks/{tasks} | projects.tasks.show | App\Http\Controllers\TasksController@show | | | | GET|HEAD | projects/{projects}/tasks/{tasks}/edit | projects.tasks.edit | App\Http\Controllers\TasksController@edit | | | | PUT | projects/{projects}/tasks/{tasks} | projects.tasks.update | App\Http\Controllers\TasksController@update | | | | PATCH | projects/{projects}/tasks/{tasks} | | App\Http\Controllers\TasksController@update | | | | DELETE | projects/{projects}/tasks/{tasks} | projects.tasks.destroy | App\Http\Controllers\TasksController@destroy | | +--------+----------+----------------------------------------+------------------------+-------------------------------------------------+------------+ جعل روابط ذات اسم لطيف الطرق routes الحالية ممتازة لكنها ذات عناوين يمكن تحسينها، مثل هذا العنوان /projects/1/tasks/2، فسيكون من الرائع للزوار أن يتم تغيير المعرف الرقمي ID بالاسم اللطيف للحقول، فمثلا سوف نحصل على /projects/my-first-project/tasks/buy-milk بدلا من /projects/1/tasks/2. قم بفتح ملف /app/Http/routes.php وضع به التالي: Route::bind('tasks', function($value, $route) { return App\Task::whereSlug($value)->first(); }); Route::bind('projects', function($value, $route) { return App\Project::whereSlug($value)->first(); }); هذه الشيفرة سوف تغير السلوك الافتراضي لـ tasks و projects في artisan routes وجعل الروابط ذات إسم لطيف slug. خاتمة اليوم لقد قمنا بعمل عدة أشياء وهي: تثبيت وإعداد Laravel. إضافة موردان اثنان resources. إنشاء التهجيرات migrations. إضافة بعض بيانات البذور seeds. تكوين هيكل الروابط. بكلمات أخرى، قمنا اليوم بوضع الأساس التي سوف نعتمد عليه في الدروس القادمة من خلال إنشاء جميع العناصر اللازمة حتى تعمل الواجهة الأمامية، ولدينا الآن بعض البيانات في قاعدة البيانات بالإضافة إلى الطرق، في الدرس القادم سوف نبدأ في الواجهة الأمامية للموقع. هنالك بضعة مواقع أخرى لتحصل على المزيد من المعلومات وآخر الأخبار: The Laravel Twitter feed: أخر الأخبار حول تطورات Laravel. Taylor Otwell’s Twitter feed: حساب تويتر لمُؤسّس Laravel. Laravel.io: لمتابعة آخر الأخبار و الدورات من مختلف مواقع الويب، بالإضافة إلى بودكاست أسبوعي يتحدث عن الأفكار والاهتمامات ذات علاقة إلى المنصة. Laravel Packages Registry: مكان جيد لإيجاد أفضل حزم Laravel. Code Bright: كتاب إلكتروني مجاني من المؤلف دايلي ريس Dayle Rees. ترجمة وبتصرف للمقال: Creating a Basic ToDo Application in Laravel 5 – Part 1. حقوق الصورة البارزة: Designed by Freepik.1 نقطة
-
الجلوس الطّويل يضر بصحّتك كثيرًا خاصة إذا كنت رائد أعمال أو مُستقلّا يجلس لساعات طويلة. لتجنب الآثار الناتجة عن الجلوس لا يُنصح بالطبع بالوقوف الدائم لكننا يوصى بالوقوف المنتظم كل فترة لتجنب البقاء على حالة واحدة لمدة طويلة مما يسبب خمولاً في الجسد. تنصح دراسات أجريت بجامعة كورنيل بالتبديل المنتظم ما بين الوقوف والجلوس كل 30 دقيقة على الأقل، لكن كيف ستتذكّر بأنه عليك التبديل؟ ومن سيطلب منك الحفاظ على ظهرك مُعتدلّا. مفتاح الجلوس الصّحّي هو التحركتحرّك لمدّة دقيقتين كل 20 دقيقة. لا تهم المدّة التي ستظل فيها جالسًا بقدر ما يهم أن تقوم بقطع فترات الجلوس بفترات حركة ولو لدقيقتين كل مرّة. التّحقق من وضعية جلوسك باستمرار أمر ضروري. والتفسير العلمي وراء ذلك بسيط: عندما لا تعمل العضلات فإنها تحرق طاقة أقل والفائض النّاتج عن ذلك والذي يكون على شكل سكر في الدم سيتراكم في دورتك الدّموية، ويتحول إلى دهون. يتجمّع الدم في الساقين والقلب، عند تحرك جسمك ببساطة كل فترة فإن الجسم يستعيد حركة الدم الدورية مما يحسن من الدورة الدموية داخل الجسم ومن ثم حرق نسبة أعلى من السكريات. الجلوس أو الوقوف في حد ذاته أمر غير مؤذيالجلوس أو الوقوف في حد ذاته أمر غير مؤذي وهو ما يجعل الجلوس الطّويل أو الوقوف الطّويل عدوّان غير مُتوقّعان للصّحة. الأمر الذي يثير الدّهشة أكثر هو أن حلّ هذا المُشكل بسيط جدّا. يكفي أن تقف وتسير قليلّا لمدّة دقيقتين. لما يكون الحلّ بهذه البساطة فإنّه من السّهل أن نتجاهله إلى أن نكتشف تأثير ذلك على أجسامنا. أتوقّع أن نطور تقنيات في المُستقبل تخبرنا كم نبعد عن إصابتنا ببعض الأمراض إن نحن واصلنا القيام بما نقوم به حاليّا. ما نحتاجه هو تذكير بصري يربط ما بين الجلوس وبين ما يحدث لجسمك، فلو رأيت أن قلبك يحتقن فلربما سيدفعك ذلك إلى التّحرّك. نحاول في هذا الإنفوجرافيك توضيح الصّورة بشكل أفضل، لكن الطّريقة الوحيدة التي يُمكن لمثل هذه الصّورة أن تدفعك إلى الحركة هو أن تؤمن بأنك عُرضة للأمر أيضًا. أنقر على الصورة ثم أنقر على زر "الحجم الكامل" لرؤيتها كاملة. ترجمة -وبتصرّف- للمقال Why Prolonged Sitting And Standing Is Unproductive لصاحبته Anna Vital. حقوق الصورة البارزة: Designed by Freepik.1 نقطة
-
هل فكّرت من قبل كيف لك أن تبدع في العمل الحر؟ إن العمل الحر ليس بالوظيفة التقليديّة، فإن حدث وسلكت طريق العمل الحرّ، ستكتشف بأن المستقلين هم على قدر عال من الإبداعيّة والإنتاجيّة وبشكل أكبر منه من هؤلئك الذين يعملون في المكاتب والشركات، حيث يملك المستقل حرية مطلقة على عكس القيود المفروضة في الوظائف الاعتيادية. أنت كمستقل يمكنك أن تعمل من أي مكان، وفي أي وقت: في مكتبك المنزلي، أو في المقهى الذي تحبه، أو حتى في غرفة نومك، لا يهم أيًا كان المكان فقط اختر ما يُناسبك، فهذه الحريّة والاستقلالية هي هِبَة لا تقدّر بثمن، ولكنّها ليست مجانية وعليك دفع الثمن، فأنت كمستقل ومطوّر مواقع، عليك التعامل مع مختلف العقليات، أيضًا الالتزام بمواعيد محدّدة، والأهم التعامل مع العدو اللدود للمستقل وهو التسّويف. ما الذي ستفعله لتصبح ذلك المستقل الحذق والذي يعرف من أن أين تؤكل الكتف وليكون لك نصيب الأسد في هذا الدرب؟ هذا هو لب وجوهر المقال، إليك أبرز الأفكار: مواقع العمل الحر والاختيار فيما بينهالا يُمكن لك أن تعمل بمجال العمل الحر من دون الاعتماد على نظامٍ/موقع يسمح لك بالحصول على المزيد من العملاء/الزبائن، فمواقع البحث عن الوظائف أصبحت كثيرة والاختيار بينها قد لا يكون بالأمر السهل، حيث يوجد العديد من منصات العمل الحر، لذا اختر بعناية، يوجد هنا في الأكاديمية مقالة مفصّلة تتحدّث عن أبرز مواقع العمل الحر اطلع عليها ربما تجد ضالتك في اختيار الأنسب. السير على روتين معينفي رياضة كرة السلّة، أفضل منفّذي الرمية الحرّة free-throw هم الذين يتبعون روتين محدّد في الرمي، حيث يسمح هذا الروتين للرامي بالتركيز وتجهيز الحالة الذهنية للتفكير في أنه يُسدّد رمية حرّة وليس أي رمية. حقوق الصورة Kate Parker يُمكن تطبيق نفس الأمر في عالم العمل الحر، حيث سيساعد السير على روتين يومي خاص بمهامك على زيادة الإنتاجيّة، عند طريق تحضير الحالة الذهنية وحثها على العمل، وبالإضافة إلى ذلك، ستكون قادرًا على إدارة وقتك بالشكل الأمثل والملائم، وعليه ضع أهداف ورتّبها تبعًا إلى الضرورة والأهمية، ووازن بين المهام وحكّم عقلك وخبرتك فيما يجب الانتهاء منه أوّلًا. اهتم بالأولوياتحدّد المشاريع التي يجب الانتهاء منها أولًا وما هي المشاريع الأكثر أهمية والتي يجب أن تعطيها القدر الكافي من الوقت، ولا تركّز على مشروع واحد فقط، بل حاول العمل على المهام التي تريد أن تنجزها أولًا. هل سمعت من قبل بمبدأ ‹‹بَرِتو›› Pareto Principle أو قاعدة 80-20؟ ربما عليك استخدام هذه الأسلوب الذي يَنصح به الكثير في الإدارة والتنظيم والذي قد يَصب في مصلحتك ومصلحة عملائك. تَفترض هذه القاعدة أو النظرية على أن 80% من النتائج ينتج من 20% من المُسببات، بمعنى أن 80% من أسباب تأخّر مشاريعك يأتي من 20% من العمل على مشاريع لا تستطيع الانتهاء منها، أو بمعنى آخر، يُستخدم 80% من الوقت في إنجاز ما قدره 20% من المشروع، وعلى الجهة الأخرى، يكفي استغلال 20% من الوقت لإنجاز 80% من المشروع. وعليه وفي المرة المقبلة التي تقبل فيها مشروع، فكّر في صعوبة إنجاز المشروع وما هو الوقت المقدّر لإنهائه، ومن ثم احسب كم ستكسب لقاء هذا التعب والجهد، وعندها ستحدّد النتيجة أولوية المشروع. حقوق الصورة Amy ملاحظات هامّة: ابدأ بالمشروع الأسهل، وبذلك ستنتهي منه بدل أن تقضي وقتًا كبيرًا على مشروع صعب يستهلك معظم الوقت. قم بإنهاء المشاريع ذات الموعد النهائي الأقرب. ركّز على المشاريع التي تحبّذ العمل عليها. اختر بين العمل ليلا أو نهاراهل أنت شخص يُفضّل العمل في وضح النهار أم في عُتمة الليل؟ فبعض الأشخاص يجد في الصباح الحماس والنشاط، بينما يجد البعض الآخر في عُتمة الليل عزلة فكرية من نوع خاص تدفع بهم نحو الإنتاجيّة، لا أنصح بوقت دون الآخر، ولكن من المهم الاختيار والتزام بغض النظر عما قد تختاره، يُمكنني القول إن الأمر بالمجمل هو من المحاسن، لأن معظم الوظائف الاعتياديّة لا تقدّم هذا النوع من المرونة من الأساس كل ما هنالك عليك التعامل مع التشتت الحاصل عند العمل في وضح النهار، لذا عليك المقاومة والعمل بجد لمقاومة هذا التشتت. حقوق الصورة Sam Javanrouh لذا اختر ولا تضيّع وقتك من دون تنظيم وتحديد ساعات الإنتاجيّة المثاليّة الخاصّة بك، وبذلك أنت تستثمر الوقت أفضل استثمار وتنجز أكثر وبمجهود أقل. حدد فترة زمنية لكل مشروعلا تهدر الوقت يُمنة ويُسرى، جدّوِلْ مهامك ومشاريعك، وخصّص لكل مشروع وقتًا محدّدًا وكافيًا من أجلك لتنهي ما يجب إنهاؤه، وبذلك ستعرف كم من الوقت ستحتاج لإنهاء المشاريع وبالقدر الكافي من الرعاية والاهتمام اللازمين، وإن حدث وفشلت في مجاراة الموعد النهائي وكنت تظن أن تمديد الفترة الزمنيّة سيؤثّر على باقي المشاريع، قم بتأجيله إلى حين الانتهاء من باقي المشاريع، وبذلك لن تقع في مطب "ضاع كل الوقت من دون إنجاز أي شيء". حقوق الصورة Sean MacEntee تجنب المشتتاتابتعد عن الملهيات عند ممارسة عملك اليومي، وبالأخص تلك الرغبة الملحة في معرفة من أرسل لك رسالة على تطبيقات التواصل الاجتماعي، من ‹‹فيس بوك›› و ‹‹واتساب›› WhatsApp، أو ألعاب العالم الافتراضي MMORPG، فهذه الأمور تبعدك عما يفترض بك التركيز عليه، وبالتالي عليك تحديد ما هي هذه المُتشتتات وتجنّبها بكل ما أوتيت من قوّة، وقد لا يكون الأمر سهلة في البداية، ولكن تذكّر أن جميع الأمور تبدو صعبةً من الوهلة الأولى وكل ما تحتاجه هو الإرادة فقط. استثمر أفكاركهل أصابك الإحباط من قبل وتَوقّفت مخيلتك عن ابتداع أي شيء فنّي تحتاجه لاستكمال المشروع؟ لا أخفيك هذه الحالة ليست باليسيرة، فأنت تواجه سد منيع وجدار مُصمت لا يتحرّك، ولكن ما الحلّ؟ كيف لك أن تنهي مشروعك (سواء كان تصميم أو كتابة إبداعية أو حتى ترجمة) باختصار شديد عليك: بتخزين الأفكار وتسطيرها outlining. تسطير الأفكار ما هو إلا وسيلة عمليّة لصون أفكارك الإبداعيّة للمشاريع اللاحقة، وتطبيق هذه الفكرة بسيطٌ للغاية: أولًا: عليك حمل أدواتك الكتابيّة حيثما ذهبت وحللت، استخدم قلم وورقة أو استخدم أحد التطبيقات في تدوين الملاحظات. ثانيًا: وعندما تجد نفسك محبطًا، استرح قليلًا، اشرب كأسًا من الشاي أو القهوة، أو تابع قناتك المفضّلة على يوتيوب، وإن خطر على بالك أي فكرة−والذي سيكون لا نقاش في ذلك− دونّه مباشرةً، أو ارسمه إن اقتضى الأمر، فبهذه الطريقة أنت تستثمر في "بنك أفكارك" إن جاز التعبير، وستسحب من هذا البنك عند الحاجة، وعلى مبدأ خبّي قرشك الأبيض ليومك الأسود. حقوق الصورة Marcio Eugenio صمم صفحة أعمال خاصة بك Portfolioلا يملك المستقلون شهادات مرجعية تُثبت قدراتهم في معظم الأحيان، ولا حتى اسمًا تجاريًا لتقديمه للعملاء، ولذلك قد يُشكّك بعض أصحاب المشاريع في خبرة بعض المستقلين، ولذلك على المستقل الحرص دائمًا على إنشاء صفحة أعمال، لتحتوي هذه الصّفحة على أعمال المستقل، ولكن مع الانتباه إلى تقديم أبرز الأعمال وليس كل الأعمال، وبهذه الطريقة وعندما يأتي أي زبون محتمل ليطلب قائمة بالأعمال السابقة، ستكون جاهزة ومُرتّبة وكل ما على المستقل هو إرسال العنوان URL إلى العميل، عندها سيدرك العميل جودة وخبرة المستقل. حقوق الصورة petermailloux.com خذ قسطا من الراحةإن الترويح عن النفس بين الحين والآخر أمرٌ ضروري لا شك في ذلك، فكما هو الأمر مع مواقع الإنترنت وحاجتها إلى مسح التخبئة cache بين الحين والآخر، وكما تحتاج أجهزة الحاسب إلى إعادة إنعاش refresh، أنت أيضًا كمُستقل تحتاج إلى راحة أيضًا، الأمر الذي سيجعلك أكثر إنتاجيّة تجاه المشروع، ناهيك عن الراحة الذهنية والنفسية. حقوق الصورة Steve Beckett زبدة الكلامتوجد صعوبات وتحديات في العمل الحرّ ولا يُمكن لأحد إنكار ذلك، ولكنك ستقطف ثمار جهدك المبذول في فك وحل هذه المشاكل، خاصة عندما تستخدم روتين معيّن، وتتجنّب المشتتات، ستجد نفسك تستمتع بالعمل كمستقل، وستجني أرباحًا تساوي أرباح الذي يعملون في المكاتب وبدوام كامل، هذا في البداية فقط، حيث أنك ستتفوّق عليهم بالأرباح بعد أن تصبح مُستقل ذكي ويعرف كيف يقتنص الفرص. ترجمة وبتصرّف للمقال How to Ace Your Freelancing Career لصاحبه Rudolph Musngi. حقوق الصورة البارزة: Designed by Freepik.1 نقطة
-
سنحاول في هذا الدرس محاكاة تصميم برنامج التورنت الشهير uTorrent، باستخدام برنامج فوتوشوب وبخطوات بسيطة، ستكون هذه هي النتيجة النهائية بعد تطبيق وتتبع كامل خطوات الدرس: افتح مشروعًا جديدًا على Photoshop بالإعدادات التالية: الأبعاد: 500x500pixels.الدّقة: Resolution 720Dpi.نمط الألوان: Color Mode RVB8bit.نرسم دائرة باللون #778286. باستعمال الاختصار (CTRL+J) ننسخ الدائرة، ثم نضغط (Ctrl+T) للتعديل يدويا على الدائرة الثانية –مع الضغط على الزر Alt للحفاظ على تناسب قطر الدائرة-: نفتح نافذة خصائص الدمج Blending Options: ننسخ الدائرة الثانية (CTRL+J): نفتح نافذة خصائص الدمج وبتدرج اللونين 46ab4d # و#157916: نرسم دائرة بيضاء: نخفض قيمة Fill إلى الصفر: ثم من القائمة: Menu > Edit > Path Transformation > Wrap نعدّل على الشكل كما في الصورة: إلى خصائص الدمج: نضيف حرف U بخط nyala: ثم مستطيل أبيض فوق الجزء السفلي للحرف: وباستعمال أداة التحديد المستطيلة الشكل M) Marquee Tool): ثم نضغط (CTRL+J) لنسخ الجزء المحدد ووضعه في الأسفل: ثم (CTRL+E) لدمج طبقات الحرف U: نزيح الحرف حتى تتوسّط الدوائر: بعدها نذهب إلى خصائص الدمج: لنحصل على النتيجة التالية: بعد ذلك نضيف طبقة جديدة (CTRL+SHIFT+N)، ثم نضغط CTRL مع تحديد طبقة الدائرة الأولى: ثم نذهب إلى القائمة: Menu > Select > Modify > Contract نستعمل أداة طلاء اللون المتدرج (G) من الأبيض إلى اللون الشفاف: ثم إلى خصائص الدمج الخاصة بالدائرة الأولى –من أسفل ترتيب الطبقات-: بعد ذلك نذهب إلى خصائص الدمج الخاصة بالدائرة الثانية: يمكن إضافة خلفية زرقاء أو بأي لون آخر لإبراز الشعار أكثر، وهذا مثال عن النتيجة النهائية: ترجمة -وبتصرّف- للدّرس: Reproduire le logo de Utorrent avec photoshop.1 نقطة