لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 11/02/21 في كل الموقع
-
أتعلم حالياً التعامل مع مكتبة cv2 وأبحث عن دالة تساعدني في تقسيم الصورة إلى ثلاث صور لقنوات RGB وإعادة دمجها باستخدام CV2 في python؟1 نقطة
-
لدي مجموعة من النقاط الحدودية التي تمثل كائن، وأريد رسمه كإطار contour، كيف نقوم بذلك؟1 نقطة
-
لما بعمل run من الXcode بحتاج تقريبا عشر دقائق لحتى يخلص مع انه كان يخلص بدقيقة من قبل ولما بعمله run من الاندرويد ستوديو ما بخلص ابدا انا شغال flutter1 نقطة
-
أريد طريقة لتغيير ألوان المحاور في Matplotlib، على سبيل المثال في الكود التالي: import numpy as np import matplotlib.pyplot as plt x = np.linspace(-2, 2, 50) y1 = x**3 y2 = x**2 fig, ax = plt.subplots() ax.plot(x, y1, c = 'black',label = 'x^3') ax.plot(x, y2, c = 'c',label = 'x^2') leg = plt.legend(title="your_title") plt.show()1 نقطة
-
ﻻ يوجد في هياكل البيانات أو البرمجة بوجهٍ عام الحل السحري لكل شئ, فإن الhash table له عيوب كما له مميزات عيوب جدول التجزئة (Hash table) دعنا نتفق أولاً أن التعقيد الوقتي(complexity time) ليس هو العامل الوحيد للقياس, يجب أخذ الوقت الثابت(constant time) في الحسبان أيضاً خاصتاً إن لم تكن تحتاج إلى ميزة الوصول إلى العنصر بشكلٍ سريع والتي هي ميزة الجدول الأساسية, حيث أن في كل مرة تقوم بعملية في الجدول يتم إستخدام دالة التجزئة والتي بدورها تأخذ وقتاً في التنفيذ وليس هذا الوقت بالهين. بعض العمليات ﻻ يمكنك تنفيذها بكفاءة بإستخدام الhash table مثل عمليات الترتيب وعمليات المرور عبر العناصر iteration إذاً ماذا تستخدم؟ هذا يعتمد على إحتياجك حيث أنه ﻻ يوجد هيكل بيانات معين أفضل من الأخر وإنما كل هيكل يتم إستخدامه في حالة يكون الأفضل فيها1 نقطة
-
يمكنك استخدام حزمة spatie/laravel-backup والموقع الرسمي لها هنا بحيث يمكنك استخدام الأمر التالي لاستدعاء الحزمة composer require spatie/laravel-backup ومن ثم بعد استدعاء الحزمة نريد إضافة ملف backup.php إلى مجلد config عن طريق الأمر التالي php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider" ويمكنك من ملف app/Console/Kernel.php وضع امر لأخذ نسخة احتياطية بشكل تلقائي عن طريق إضافة protected function schedule(Schedule $schedule) { $schedule->command('backup:clean')->daily()->at('01:00'); $schedule->command('backup:run')->daily()->at('01:30'); } ومن ثم تشغيل الأمر التالي php artisan backup:run ويمكنك انشاء Controller لحفظ و تنزيل نسخة احتياطية عن طريق مثلا لوحة التحكم فيكون شكل الcontroller هكذا <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Alert; use App\Http\Requests; use Artisan; use Log; use Storage; use Spatie\Backup\Helpers\Format; class BackupController extends Controller { public function index() { $disk = Storage::disk(config('backup.backup.destination.disks')[0]); //$disk = storage_path('app'); //dd(storage_path('app') . DIRECTORY_SEPARATOR . config('backup.backup.name')); //$disk = Storage::disk(config('backup.backup.name')[0]); //dd(config('backup.name')); //dd(config('backup.name.backup.destination.disks')[0]); //echo (config('CropFix.backup.destination.disks')[0]); $files = $disk->files(config('backup.backup.name')); //$files = storage_path('app') . DIRECTORY_SEPARATOR . config('backup.backup.name'); $backups = []; // make an array of backup files, with their filesize and creation date foreach ($files as $k => $f) { // only take the zip files into account if (substr($f, -4) == '.zip' && $disk->exists($f)) { $backups[] = [ 'file_path' => $f, 'file_name' => str_replace(config('backup.backup.name') . '/', '', $f), 'file_size' => Format::humanReadableSize($disk->size($f)), 'last_modified' => date('m/d/Y H:i:s', $disk->lastModified($f)), ]; } } // reverse the backups, so the newest one would be on top $backups = array_reverse($backups); return view("admin.backups.index")->with(compact('backups')); } public function create() { try { // start the backup process //Artisan::call('backup:run'); $parameters = []; $outputBuffer = null; Artisan::call('backup:run', $parameters, $outputBuffer); //Artisan::call('backup:run'); $output = Artisan::output(); //dd(Artisan::output()); // log the results //Log::info("Backpack\BackupManager -- new backup started from admin interface \r\n" . $output); // return the results as a response to the ajax call //Alert::success('New backup created'); return redirect()->back(); } catch (Exception $e) { Flash::error($e->getMessage()); return redirect()->back(); } } /** * Downloads a backup zip file. * * TODO: make it work no matter the flysystem driver (S3 Bucket, etc). */ public function download($file_name) { //$file = config('backup.backup.name') . '/' . $file_name; $file = config('backup.backup.name') . '/' . $file_name; $disk = Storage::disk(config('backup.backup.destination.disks')[0]); if ($disk->exists($file)) { $fs = Storage::disk(config('backup.backup.destination.disks')[0])->getDriver(); $stream = $fs->readStream($file); return \Response::stream(function () use ($stream) { fpassthru($stream); }, 200, [ "Content-Type" => $fs->getMimetype($file), "Content-Length" => $fs->getSize($file), "Content-disposition" => "attachment; filename=\"" . basename($file) . "\"", ]); } else { abort(404, "The backup file doesn't exist."); } } /** * Deletes a backup file. */ public function delete($file_name) { $disk = Storage::disk(config('backup.backup.destination.disks')[0]); if ($disk->exists(config('backup.backup.name') . '/' . $file_name)) { $disk->delete(config('backup.backup.name') . '/' . $file_name); return redirect()->back(); } else { abort(404, "The backup file doesn't exist."); } } function humanFilesize($size, $precision = 2) { $units = array('B','kB','MB','GB','TB','PB','EB','ZB','YB'); $step = 1024; $i = 0; while (($size / $step) > 0.9) { $size = $size / $step; $i++; } return round($size, $precision).$units[$i]; } } و ملف view الخاص controller يكون بالشكل التالي @extends('admin.layout.app') @section('content_header') <h1>النسخ الاحتياطية</h1> <ol class="breadcrumb"> <li><a href="{{ route('dashboard') }}"><i class="fa fa-dashboard"></i> لوحة التجكم</a></li> <li><a href="{{ route('users.index') }}">أدارة النسخ الاحتياطية</a></li> <li class="active">النسخ الاحتياطية</li> </ol> @endsection @section('content') <div class="row"> <div class="col-md-12"> <div class="box"> <div class="box-header with-border"> <a href="{{ route('backups.create') }}" class="btn btn-danger float-left" style="width: 200px; float: left;">أنشاء نسخة أحتياطية</a> </div><!-- /.box-header --> <div class="box-body"> @if (count($backups)) <table class="table table-bordered"> <tbody> <tr> <th>الملف</th> <th>الحجم</th> <th>التاريخ</th> <th>المدة</th> <th></th> </tr> @foreach($backups as $backup) <tr> <td>{{ $backup['file_name'] }}</td> <td>{{ ($backup['file_size']) }}</td> <td> {{ ($backup['last_modified']) }} </td> <td> {{ ($backup['last_modified']) }} </td> <td class="text-right"> <a class="btn btn-xs btn-default" href="{{ route('backups.download', $backup['file_name']) }}"><i class="fa fa-cloud-download"></i> تحميل</a> <a class="btn btn-xs btn-danger" data-button-type="delete" href="{{ route('backups.delete', $backup['file_name']) }}"><i class="fa fa-trash-o"></i> حذف</a> </td> </tr> @endforeach @else <tr> <td colspan="4">لا توجد نسخ احتياطية</td> </tr> @endif </tbody> </table> </div><!-- /.box-body --> </div><!-- /.box --> </div><!-- /.col --> </div> @endsection طبعا هذه الأكواد عبارة عن أمثلة. يمكنك زيارة التوثيق الرسمي للحزمة و متابعة جميع المميزات التي تقدمها الحزمة أيضا.1 نقطة
-
يُمكنك إنشاء أمر artisan خاص يقوم بعمل النُسخة التي تريدها عند تنفيذه و لإنشاء ذلك الأمر نقوم بدايةً بتنفيذ الأمر التالي: php artisan make:command DatabaseBackUp سيُنشئ لك الأمر صنف بالإسم DatabaseBackUp في المسار: app/Console/Commands/DatabaseBackUp تقوم بالتعديل عليه ليُصبح بالشكل التالي: <?php namespace App\Console\Commands; use Carbon\Carbon; use Illuminate\Console\Command; class DatabaseBackUp extends Command { protected $signature = 'database:backup'; protected $description = 'create database backup'; public function __construct() { parent::__construct(); } public function handle() { $filename = "backup-" . Carbon::now()->format('Y-m-d') . ".gz"; $command = "mysqldump --user=" . env('DB_USERNAME') ." --password=" . env('DB_PASSWORD') . " --host=" . env('DB_HOST') . " " . env('DB_DATABASE') . " | gzip > " . storage_path() . "/app/backup/" . $filename; $returnVar = NULL; $output = NULL; exec($command, $output, $returnVar); } } بعد ذلك تقوم بإنشاء مُجلد backup في المسار: storage/app/backup و عندما تريد إنشاء نُسخة من قاعدة البيانات فقط تقوم بتنفيذ الأمر: php artisan database:backup و هذا الأمر سيقوم بإنشاء نُسخة من قاعدة البيانات بنفس تاريخ تنفيذ الأمر. في المُجلد الذي أنشأناه.1 نقطة
-
يمكنك باستخدام إطار العمل Laravel من تصميم إي موقع بعدة لغات, بحيث Laravel تقدم لك مجلد lang كامل لكي تضع فيه ملفات ترجمة اللغات في هذا المجلد. يمكنك في مسار المجلد الرئيسي ثم تختار مجلد resources ومن ثم مجلد lang ستجد في هذا المسار مجلد en وبداخله ملفات مثل: auth.php pagination.php passwords.php validation.php لو قمت بالدخول لهذه الملفات ستجد أنه يوجد في كل ملف array تحتوي على key, value بحيث key مفتاح الذي سيعبر عن القيمة value في اللغة فمثلاُ: <?php return [ 'failed' => 'These credentials do not match our records.', 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 'users' => 'users', ]; ?> بحيث المفتاح failed قيمته وهي These credentials do not match our records. هذا للغة الأنجليزية, فماذا لو أردنا أن نعمل لغة عربية للموقع بكل سهولة سنذهب إلى مجلد lang ونقوم بإنشاء مجلد جديد باسم ar ونضع به الملفات المذكورة كما في مجلد en للغة الأنجليزية مع الإبقاء على المفاتيح و تغيير القيمة, فمثلاً <?php return [ 'failed' => 'أوراق الاعتماد هذه لا تتطابق مع سجلاتنا.', 'throttle' => 'محاولات تسجيل دخول كثيرة جدًا. يرجى المحاولة مرة أخرى في: ثواني.', 'users' => 'الأعضاء', ]; هكذا قمنا بإنشاء ملف auth.php ولكن بداخل مجلد ar في مجلد lang. ولكن لم ننتهي بعد الأن يجب علينا استخدام قيمة المفاتيح keys لأنها متشابهة في كل لغة مع الأختلاف بقيمة values فمثلا لو أردنا جلب المفتاح failed, سنقوم بالتالي: <p>{{ trans('auth.failed') }}</p> لو لاحظت جيداً اننا قمنا بكتابة الأقواس المعكوفة ثم دالة trans لجلب وطباعة القيمة حسب اللغة, دعنا نفصل أكثر هذا auth يعني اسم الملف , failed يعني المفتاح failed في ملف auth.php حسب كل لغة. ولكن الأن يجب علينا تحديد لغة الموقع الرئيسية من خلال ملف config.php داخل مجلد config في المجلد الرئيسي للمشروع عن طريق تغيير 'locale' => 'ar', او 'locale' => 'en', ويمكنك من وضع عنصر select باستخدام html لتغيير اللغة <select class="form-control changeLang"> <option value="en" {{ session()->get('locale') == 'en' ? 'selected' : '' }}>English</option> <option value="ar" {{ session()->get('locale') == 'ar' ? 'selected' : '' }}>Arabic</option> </select> وأيضا سنضع كود جافا سكربت للقيام بتغيير اللغة حسب route نحدده و نعمل تحديث للصفحة حسب اللغة المختارة مثل <script type="text/javascript"> var url = "{{ route('changeLang') }}"; $(".changeLang").change(function(){ window.location.href = url + "?lang="+ $(this).val(); }); </script> سيكون route في ملف web.php Route::get('lang/change', 'IndexController@change')->name('changeLang'); مع وضع في دالة index في ملف IndexController. public function index(Request $request) { App::setLocale($request->lang); session()->put('locale', $request->lang); return redirect()->back(); } يتم قلب ذلك باستخدام html وتغيير اتجاه الصفحة عن طريق <!DOCTYPE> <html lang="ar" dir="rtl"> <html lang="en" dir="ltr"> بحيث rtl - right to left, ltr - left to right. أو يمكن استخدام مكتبة بوتستراب. لا, الأغلب نفس التصميم مع قلب الأتجاهات إلا إذا كان الموقع يختلف بالواجهات من اللغة العربية إلى اللغة الأنجليزية.1 نقطة
-
مرحبًا @عبد الواحد الحدادي تطوير المواقع متعددة اللغات أصبح أسهل عن ذي قبل خصوصًا مع زيادة الدعم للغات RTLـ وسأخذ بوتستراب 5 على سبيل المثال، فقد أصبح يدعم اللغة العربية بكفأة الآن، لذلك كل ما ستحتاج تغيره هو فقط رابط ملف css الخاص ببوتستراب <!-- LTR languages --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- RTL language --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.rtl.min.css" rel="stylesheet"> مع إضافة الخاصية dir واللغة في وسم html <html lang="ar" dir="rtl"> وستجد أن الواجهة تحولت بالكامل إلى الإتجاه الصحيح. إن كنت تستخدم الإصدار 4 من بوتستراب فيمكنك الإطلاع على نسخة RTL من هنا. هذا بالنسبة لواجهة المستخدم أم بالنسبة إلى الـ Backend ففي Laravel توجد مكتبة mcamara التي ستسهل عليك عملية تطوير موقع متتعد اللغات. عند تثبيت هذه المكتبة بشكل صحيح، سيتم وضع اللغة في أول كل رابط داخل الموقع بالشكل التالي: // صفحة التواصل باللغة الإنجليزية http://example.com/en/contact // صفحة التواصل باللغة العربية http://example.com/ar/contact كما إن هذه المكتبة ستوجه المستخدم إلى الرابط الصحيح في حالة لم يتم تحديد اللغة في مسار الموقع URI، فإذا زار المستخدم الموقع من خلال الرابط https://example.com/ فسيتم توجيهه تلقائيُا إلى الرابط التالي علي سبيل المثال: https://example.com/ar ويمكن أيضًا تغير النصوص الخاصة بالصفحة حسب اللغة من خلال ملفات lang التي يقدمها laravel، ستجد في المجلد resources/lang مجلد بإسم en خاص باللغة الإنجليزية ويمكنك أن تصنع مثل هذا المجلد لأي لغة تريد بنفس الطريقة (مجلد ar في حالة اللغة العربية) وداخل هذا المجلد توجد ملفات الترجمة نفسها، كل ملف من هذه الملفات عبارة عن مصفوفة تحتوي على مفتاح وقيمة، كملف auth على سبيل المثال: <?php return [ 'failed' => 'بيانات الاعتماد هذه غير متطابقة مع البيانات المسجلة لدينا.', 'password' => 'كلمة المرور المستخدمة غير صحيحة.', 'throttle' => 'عدد كبير جدا من محاولات الدخول. يرجى المحاولة مرة أخرى بعد :seconds ثانية.', ]; ولكي تظهر المحتوى الخاص بلغة معينه عليك إستخدام دالة الترجمة __() وتمرير اسم الملف والمفتاح (بينهما نقطة dot فقط) كالتالي: <!-- filename.key --> <a href="#">{{ __('auth.failed') }}</a> بهذه الطريقة ستظهر جملة 'بيانات الاعتماد هذه غير متطابقة مع البيانات المسجلة لدينا.' في الصفحة العربية وجملة 'These credentials do not match our records.' في الصفحة الإنجليزية. ليس بالضرورة تصميم الموقع بكل اللغات المطلوبة يكفي تصميمه باللغة الرئيسية فقط، لأن الواجهة لن يتغير فيها شيء بإستثناء الإتجاه وربما بعض الصور والخطوط، في النهاية الموضوع متوقف على طبيعة العمل وطبيعة الموقع نفسه.1 نقطة
-
دالة Fetch عبارة عن Web API تسمح لك بإرسال طلبات HTTP Requests وتقوم بجلب لك نتيجة هذا الطلب، فعلى سبيل المثال: تريد أن تجلب 10 أسماء أشخاص عشوائية من API معين، لذلك تستخدم هذا الرابط (قم بزيارته في المتصفح لترى النتيجة)، ما تراه في المتصفح هو ما سوف تجلبه لك دالة Fetch ويسمى إجابة الطلب Response. فإن قمت بكتابة السطر التالي في الـ console: console.log(fetch('https://namey.muffinlabs.com/name.json?count=10&with_surname=true&frequency=common')); ستحصل على هذه النتيجة (الصورة الأولى fetch_then_result.png) هذه النتيجة من نوع Promise وسنرجع لهذا النوع لاحقًا، أما الآن تحتاج لطريقة للحصول على الأسماء من داخل هذه النتيجة، وهنا يأتي دور دالة then، هذه الدالة تسمح لك بالدخول إلى النتيجة من نوع Promise وتستخدمها كما تريد، فإذا قمت بكتابة السطر التالي في الـ console: console.log(fetch('https://namey.muffinlabs.com/name.json?count=10&with_surname=true&frequency=common').then(function(response) {return response.json()})); ستحصل على هذه النتيجة (الصورة الثانية fetch_result.png) وستجد 10 أسماء عشوائية موجودة في PromiseResult دالة then تأخذ متغير عبارة عن دالة في حد ذاته، بعد ذلك يتم تمرير إجابة الطلب من نوع Promise إلى هذه الدالة الأخيرة لتقوم بتحويله إلى كود JSON بدلًا من نص عادي String حتى يسهل التعامل معه في باقي الكود، بمجرد أن يتم تحويل الإجابة response إلى كود JSON ترجعه الدالة then الأولى بإستخدام جملة return ويخزن في PromiseResult لاحظ أنه يمكنك أن تسمي اسم المتغير الممرر إلى الدالة داخل then بأي اسم، مثلًا: .then(function(something) {return something.json()})); // أو هكذا .then(function(data) {return data.json()})); لاحظ أيضُا أنه يمكنك أن تستدعي دالة then أكثر من مرة على التوالي: fetch('https://namey.muffinlabs.com/name.json?count=10&with_surname=true&frequency=common').then(function(response) {return response.json()}).then(function (something){console.log(something)}); وفي كل مرة تأخذ دالة then ما أعادته دالة then التي قبلها، (أنظر الصور الثالثة fetch_then_then_result.png) قد تتسأل لمذا كل هذا التعقيد، لماذا لا يتم تخزين نتيجة الطلب في متغير مباشرة هكذا: var x = fetch('https://namey.muffinlabs.com/name.json?count=10&with_surname=true&frequency=common') لتستخدمها بكل سهولة بعد ذلك للإجابة على ذلك عليك أن ما سيحدث للموقع في حالة تأخر الخادم server في إرسال النتيجة response، بكل بساطة سيتوقف كل شيء حتى يتم تخزين إجابة الطلب في المتغير x ، بالطبع لا نريد حدوث ذلك، لذلك وجب إستخدام عملية غير متزامنة (asynchronous operation) أي يتم تنفيذ دالة fetch وفي نفس الوقت يظل الموقع يعمل كما كان بالضبط. يمكنك الإطلاع على توثيق موسوعة حسوب JavaScript - Promise لشرح أكثر تعمقًا ملاحظة: في دالة then الثانية في سؤالك، تم دالة سهمية Arrow Function وهي نفس الدالة العادية لكن بطريقة كتابة مختلفة فقط. أنظر الدوال السهمية في JavaScript1 نقطة
-
مشاء الله مهارات عظيمة. هناك فقط بعض الملاحظات البسيطة للغاية، بتطبيقها ستكون سيرتك الذاتية جاهزة بالكامل: - لاحظت أنك مطور تطبيقات أندرويد، لذلك غير المسمى الوظيفي إلى Android Developer لتكون أكثر دقة. - في معلومات الإتصال ضع الدولة بجانب اسم المحافظة Cairo, Egypt (ستكون أفضل في حالة العمل مع شركات دولية أو أجنبية). - قم بتنسيق رقم الهاتف من خلال وضع مسافات ليكون بهذا الشكل +20 123 456 7890 - ألقيت نظرة على حسابك في GitHub ووجدت أعمال رائعة ما شاء الله. فقط أكتب بعض المحتوى في ملفات ReadMe تشرح فيها الغرض من التطبيق والمميزات الخاصة به. - في الفقرة التعريفي Summary أصلح خطاء إيملائي بسيط، لتكون الفقرة هكذا: - إستخدم خدمة Grammarly المجانية لإصلح بعض الأخطاء الإيملائية البسيطة في جزء المشاريع الخاص بك. - أكتب مقدمي الدورات التي حصلت عليها مثلًا " Mobile application development course using web technologies From Hsoub Academy" في النهاية، إستخدم موقع لبناء السيرة الذاتية مثل resume.io أو zety.com هذه الموقع ستقدم لك قوالب إحترافية تفيض بالحياة. بالتوفيق1 نقطة
-
في أغسطس 2016 تم إضافة ميزة تحديد الإتجاه (يمين أو يسار) direction، وبهذا أصبحت كل تطبيقات react native تدعم اللغات التي تكتب من اليمين إلى اليسار مثل اللغة العربية والعبرية. كما أصبح من الممكن أن تجبر تطبيقك على أستخدم إتجاه معين (مثلاً LTR) حسب حاجتك من خلال إستخدام دالة forceRTL من مكتبة I18nManager بالشكل التالي: I18nManager.forceRTL(false); I18nManager.allowRTL(false ملاحظة: قد تحتاج أن تعيد تشغيل التطبيق مرة أخرى لترى نتيجة هذه الدالة. إن لم تعمل هذه الطريقة معك لسبب أو لآخر، فقم بإضافة الكود التالي في ملف MainApplication.java: import com.facebook.react.modules.i18nmanager.I18nUtil; public class MainApplication extends Application implements ReactApplication { @Override public void onCreate() { super.onCreate(); // FORCE LTR I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); sharedI18nUtilInstance.allowRTL(getApplicationContext(), false); .... } } بذلك سوف تجبر التطبيق على إستخدام إتجاه LTR. لتتعمق أكثر أقرأ هذه المقالة من موقع reactnative.dev والتي تشرح كل ما يخص هذه الميزة، كما أنصحك بالتركيز على جزء الأخير الذي يشرح حدود هذه الميزة وكيف سيتم تطويرها في المستقبل، حتى يظهر تطبيقك بالشكل المناسب في كل الحالات.1 نقطة
-
بين وقت وآخر أتلقى ترشيحات في مسابقة زاجل لأفضل المشاريع الناشئة لا علاقة لها لا من قريب ولا من بعيد بمفهوم الشركة الناشئة. هذا يعني أن المصطلح Startup، كعادة المصطلحات المنحوتة من أكثر من كلمة، ما يزال غامضا غير مفهوم الدلالة تماما. يعرف معجم أوكسفورد مصطلح Start-up بأنه ”عمل تجاري أنشئ حديثا“. هو تقريبا نفس التعريف الذي تعتمده ويكيبيديا، إذ تعرف المصطلح بأنه ”شركة ذات تاريخ تشغيلي قصير“. هو أيضا نفس التعريف القانوني المعتمد في بعض الدول مثل الولايات المتحدة وبريطانيا. القصور في هذا التعريف هو تسمية أي عمل تجاري جديد بأنه Startup، سواء كان إنشاء مطعم صغير في زاوية ما أو إنشاء شركة ستحقق نموا سريعا وإيرادات كبيرة جدا تضاهي أبل وجوجل. يظهر هذا القصور بوضوح في الترجمة العربية المعتمدة: ”شركة ناشئة“، فلو اكتفينا بالدلالة اللغوية السطحية سيشمل تعريف ”شركة ناشئة“ كل عمل تجاري مؤسس حديثا، بغض النظر عن طبيعته وقابلية توسعه ونموه. التعريف الأكثر شيوعا، وسط رواد الأعمال المبتدئين، لمفهوم الشركات الناشئة، هو أنها شركات صغيرة حديثة التكوين تعتمد على التكنولوجيا لابتكار أشياء جديدة ممتعة. العيب في هذا التعريف هو حصر الشركات الناشئة في المشاريع التي تعتمد على التكنولوجيا، وبالضبط على الإنترنت والموبايل. رغم أن هذا التعريف يتميز عن التعريف اللغوي بتحديد شرط الابتكار، إلا أنه يبقى قاصرا إذ يتجاهل المشاريع التي لا تصنف في قطاع التقنية. من بين محاولات تعريف المصطلح المنتشرة يصنف تعريف الكاتب ستيف بلانك بأنه الأفضل والأكثر دلالة، والأكثر اعتمادية عند المستثمرين ورواد الأعمال. يعرف ستيف بلانك الشركة الناشئة بأنها مؤسسة شكلت بغرض البحث عن نموذج ربحي قابل للتكرار والتوسع. لا يحصر هذا التعريف الشركات الناشئة بأي مجال، يمكن أن تكون شركات تقنية أو شركات في أي مجال آخر. المهم أن تسعى لإيجاد أسلوب للربح يكون قابلا للتكرار والتوسع بشكل كبير. ذلك السعي -المسكون ضمنيا بهاجس اللايقين- يتطلب الابتكار على مستويات عدة؛ الابتكار على مستوى المنتج أو الخدمة، الابتكار على مستوى النموذج الربحي والابتكار على مستوى التوسع. قلت سابقا خلال مقارنتي بين الشركات الناشئة والشركات الصغيرة والمتوسطة، بأن الشركات الناشئة تتميز بالطموح نحو التوسع الكبير، الاجتهاد في الإبداع والابتكار والحلم بإحداث تغييرات إيجابية في المجتمع. إذن، التعريف الذي أراه مناسبا للشركات الناشئة، في مجال ريادة الأعمال، هو: الشركة الناشئة هي شركة حديثة النشأة، تبتكر منتجا (أو خدمة) جديدا كليا أو تبتكر صيغة فريدة لمنتج قديم، تمتلك الطموح للتوسع بشكل كبير، وتسعى لإيجاد نموذج ربحي يحقق ذلك الطموح خلال سنوات قليلة.1 نقطة