21 نقاط السمعة
36.1 ألف مشاهدات المحتوى
عضو منذ
تستطيع استخراج الكلمات ببساطة باستخدم: "params[:txt].scan /\S+/"a بدون "a" يبدو أنك مبتدأ في Ruby أنصحك بالتعلم من RubyMonk و مراجعة ruby-doc.org for عادة ﻻ تستخدم في Ruby أكثر شيء يستخدم مكانها each مثلا: params[:txt].each { |letter| puts letter }"aa" تجاهل الـ "aa"
تستطيع استخراج الكلمات ببساطة باستخدم: params[:txt].scan /\S+/
يوجد مشكلة أمنية قد تكون أخطر من SQL Injection ألا و هي تخزين كلمات المرور دون تشفيرها. كثير من المستخدمين يستخدمون نفس كلمة المرور لأكثر من موقع و لهذا يجب تخزين كلمات المرور مشفرة بتشفير جيد - bcrypt مثلا - باﻹضافة إلى salt
أعتقد أن الحل حالياً أن تجمع المكتبات التي تستخدمها, مثلاً JQuery, AngularJS, X-Tags و تجعل برنامج يصغرها و يجمعها في ملف واحد و يسميها على حسب محتواها مثلا: 0d75ae33.vendor.js و بهذه الطريقة سيحمله المتصفح أول مرة المستخدم يزور الصفحة و يخزن الملف و ﻻ يحمل الملف مرة أخرى إلا إذا تغير اسمه, مثلاً: 0d75a231.vendor.js و بهذه الطريقة تضرب 3 عصافير بحجر واحد: - بدل من 3 ملفات ملف واحد - الملف حجمه أصغر - الملف يحمل مرة واحدة فقط و
كلامك صحيح. فهو ﻻ يعتمد على المتصفح.
"لم لا تقدم المتصفحات فكرة مدير حزم؟" يوجد مدير حزم مثل npm و اسمه bower Web Components هي مجموعة APIs يتم تطويرها للمتصفحات لتزيد من إمكانياتها. Custom Elements هو أحد هذه الإمكانيات و أعتقد أنها مستقبل تطوير واجهات الويب. أما بالنسبة لـCustom Elements و Polymer فهي جاهزة للاستخدام: http://mozilla.github.io/brick http://x-tags.org http://googlewebcomponents.github.io http://addyosmani.github.io/polymer-filters/components/polymer-filters http://customelements.io http://www.polymer-project.org أما بالنسبة لـ JQuery فلا تصلح لتطوير أغلب تطبيقات الويب, بالطبع هناك استثنائات. غالبا ستحتاج إطار عمل متكامل مثل: AngularJS, Backbone, Ember. و باﻹضافة ستحتاج إلى
عفواً قرأت السؤال خطأ. هذ هو الحل الصحيح: import java.util.Scanner; public class Main { public static void main(String[] args) { final String NEW_LINE = System.getProperty("line.separator"); System.out.print("Word: "); final Scanner scanner = new Scanner(System.in); final String input = scanner.nextLine(); scanner.close(); final int inputLength = input.length(); final StringBuilder builder = new StringBuilder(inputLength); for (int i = 0; i < inputLength; i++) { for (int j = 0; j <= i; j++) { builder.append(input.charAt(j)); } builder.append(NEW_LINE); } System.out.print(builder.toString()); } }
من الأسباب أن بعض المبرمجين و الشركات يجعلون برامجهم مفتوحة المصدر: - الاستفادة من مجتمع المصادر المفتوحة. كثير من البرمجيات الحرة لم تكن لتصل لما هي عليه من الجودة لو أنها مغلقة المصدر، فبدل أن تدفع لفريق من 10 مبرمجين، ادفع لفريق من 4 و عين شخص يشرف على استقبال أعمال المجتمع مفتوح المصدر. - عدم توفر الوقت أو المعرفة لكتابة البرنامج دون مساعدة - دعاية للبرنامج و الشركة دون أي تسويق، فمثلا Google ابتكرت Junit و كثير من المبرمجين
حالياً أستخدم: Sublime Text 3 مع: Javascript, Coffeescript, Ruby/Rails, HTML, CSS, Jade, HAML, YAML, Python, JSON. Eclipse مع: C/C++, Java, Scala, Android DrRacket مع: Racket Gedit مع: Standard ML, Mozart/OZ
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); char[] input = scanner.next().toCharArray(); scanner.close(); for (char letter : input) { System.out.println(letter); } } }
في كثير من اﻷحيان المشكلة ليست في الحجم بحد ذاته بل هناك عوامل أخرى مثل: - عدد الملفات - مكان script و link في الصفحة Yeoman يحل هذه المشكلة فمثلاً تستطيع أن تستخدم 20 إطار عمل لـCSS و 20 إطار عمل لـJavascript و يضغط جميع أطر عمل CSS و يضعها في ملف واحد و يقوم بنفس الشيء لـJavascript. و بهذا يكون لديك ملف CSS واحد مضغوط عوضاً عن 20 و نفس الوضع مع Javascript. أما بالنسبة لملفات CSS كتبتها أنت
إذا كنت تطور بروبي فأنصحك باستخدام RubyOnRails ﻷن كثير من rubygems تدعمه مثل: paperclip التي تقوم بحفظ الملف في المسار المحدد باسم عشوائي و تحفظ اسم الملف الأصلي, حجمه, نوعه و الكثير من الميزات اﻷخرى. أما بالنسبة لاسم الملف فكل ما عليك هو أن تجعل جزء من اسم الملف عشوائي و بهذا كل ملف سيكون مخزن باسم مختلف.
الأمر يعتمد على المشروع و الفريق الذي يعمل على المشروع. أعتقد أنه من اﻷفضل عدم كثرة الخوض في هذا الموضوع، ﻷنه في كثير من اﻷحيان ما يكون مسألة رأي أكثر من كونه شيء علمي يمكن إثباته.
بعض الدورات فيها شهادات معتمدة بمقابل مادي. و تستطيع دراسة أي مادة مجاناً و تحصل على شهادة شرفية. و لكن بعضها ﻻ تحصل على شهادة ﻻ شرفية و ﻻ معتمدة و عددها قليل. بالنسبة لي فقد حصلت على أكثر من 10 شهادات شرفية من Coursera, edx, Stanford Online. و أنهيت بعض الدورات و أنتظر صدور الشهادات و أخطط أخذ دورات جديدة. يوجد الكثير من الدورات الأكثر من رائعة, فمثلاً دورة CS50 من edx المقدمة من جامعة Harvard مدتها 12 اسبوع
اذا كنت بتطورها على الأندرويد فمبدئيا تحتاج permissions يعني صلاحيات انك ترسل رسائل و تقرأ جهات الاتصال طبعا هذا يكون في ملف AndroidManifest.xml أما بخصوص الارسال في وقت معين فتستخدم AlarmManager و اعتقد ان الافضل ان ارسال التنبيه يكون عن طريق واتساب أو تويتر أو رسالة نصية و بهذه الطريقة الطرف و طبعا مستخدم التطبيق يقدر يختار الطريقة و هكذا 1 التطبيق يكون مثبت فقط على جهاز المرسل 2 تستفيد من الشبكات الاجتماعية و شعبيتها عوضا عن انك تثبت التطبيق
14
فكرة أكثر من رائعة و اختيار موفق ل AngularJS و Jade يوجد اطار عمل ممتاز لتطبيقات الويب: yeoman أنصحك بالاستفادة من التوثيق لأي تقنية تستخدمها حاليا أو تنوي استخدامها في المستقبل. و اذا لم تجد كاتريد في التوثيق الرسمي ابحث في google او stackoverflow و اذا كنت تريد أنت تتعمق في البرمجة و علوم الحاسب: coursera.org edx.org class.stanford.edu udacity.org