مهووسو جنو Gnu Geeks
2.98K subscribers
418 photos
11 videos
15 files
222 links
أبرز المشاريع و التطبيقات و التلميحات المفيدة لمستخدمي المصادر المفتوحة (الحرة)

لطرح أية تساؤلات تخطر ببالكم بمجال المصادر المفتوحة اشترك بمجموعتنا
https://t.me/gnugeeksgroup
Download Telegram
تعلم رست وغو ببضعة ساعات مع مقارنة سريعة مع بايثون وسي بلس بلس

لطالما قرأت عن لغة #رست وعن سرعة أدائها وسهولة الكتابة بها وبأنها موازية بالأداء لـC++ وبسهولة بايثون.
الحقيقة أنني لم أنجذب إليها كثيراً لأنه صار عندي مناعة من ثقافة الـ Trend وبالذات من كل شيء جديد، لذلك دائماً أترك التقنيات لفترة حتى تتضح محاسنها من مساؤئها.

منذ بضعة أشهر وبإحدى عطلي الأسبوعية عزمت تعلم لغتين، لغة رست و #غو.

قد تكون طريقة تعلمي غريبة نوعاً ما لكنها ناسبتني لحد بعيد حيث اتبعت المنهجية التالية:
1. بدأت بصفحة ويكيبيديا بكلتا اللغتين للإطلاع على نحوية Syntax كلا اللغتين (ويكي غو - ويكي ر ست)
2. دخلت للموقع الرسمي لكلتا اللغتين وبدأت بكتابة تطبيق بسيط من متصفح الإنترنت (ملعب رست - ملعب غو)
3. بعدما أشبعت ذروة فضولي بدأت بتجهيز الأدوات اللازمة لتبيت اللغتين على حاسوبي وفقاً للتعليمات من الموقعين الرسميين (تعليمات رست - تعليمات غو).
4. بعد الإنتهاء من عملية التثبيت كتبت ثلاثة تطبيقات بلغة C++ ورست وغو (منشورة أدناه) لاختبار أداء اللغات بشكل سطحي جداً

التجربة كانت ممتعة، استطعت تعلم أسياسيات رست وغو خلال ساعتين، شفرة رست وغو كلتاهما سهلتا التعلم بالمقارنة بالـ C++ لكن غو أكثر أناقة وبساطة حتى أنني وجدت أنها أسهل من بايثون من ناحية التنظيم وعدد الأسطر.
بحسب التطبيق الذي جربته باللغات الثلاثة كانت نتيجة سرعة الأداء كالآتي بالترتيب (الزمن بالثانية):
1. Go: 0m2.249s
2. Rust: 0m3.512s
3. C++: 0m8.359s
4. Python: 4m35.354s
النتيجة صادمة أليس كذلك؟
طبعاً من كان ليتوقع أن تكون #سي بلس بلس أبطأ من غو ورست، أما بايثون فكانت بأداء مخز للغاية (أكثر من 4 دقائق)!!!
الحقيقة أن هذا الإختبار بسيط جداً ولا يمكن أن يعوّل عليه بإتخاذ القرارات لكن من خلاله استطعت الحصول على لمحة لقدرات لغة تعلمتها بأقل من يوم. لكن هنالك حقيقة جوهرية وهي أن الأداء المخزي للبايثون حقيقي لأن بايثون لم تصمم أساساً للأداء العالي وبالتالي من الخطأ وضعها بنفس سوية اللغات الثلاث مع ذلك وضعتها كونها من اللغات المحبوبة والتي لها جمهورها.
الحقيقة أن مقارنة الأداء العملية والعلمية تستطيعون الحصول عليها من مؤشر Benchmarks Game الرائع والذي يزودنا بنتيجة واضحة لأداء اللغات الأربع حيث يظهر جلياً أن C++ على القمة بلا ريب لذلك أزودكم بنتيجة الاختبار الحقيقية للأداء (قيمة CPU أقل يعني الأداء الأفضل):
1. #C++
2. Rust vs C++
3. Go vs C++
4. Python vs C++
نأتي لنقطة مهمة واجهتها عندما خضت هذه التجربة وهي أن النظام البيئي Eco System لغو متفوق بأشواط عن رست والسبب واضح وهو أن سهولة نحوية غو زادت من شعبيتها بالرغم من أنه عن طريق رست تستطيعون الوصول لميزات متقدمة يصعب الحصول عليها بواسطة غو. لذلك ستجد أن غو منتشرة بشكل واسع بمجال تطوير الويب والشبكات في حين تستعمل #رست ببرمجة الأنظمة أكثر بالرغم من أن العديد من الشركات تستعملها بتطوير الويب والشبكات.

غو ورست رائعتان وكلتاهما متفوقتان على #بايثون ومرشحتان لأن تكونا بايثون المستقبل لأن كلتاهما توازنان ما بين البساطة والأداء العالي على عكس تعقيد سي بلس بلس وضعف الأداء في بايثون.

قبل الختام يجدر بي الإشارة إلى ثلاثة مواقع مهمة لغو ورست للحصول على أي مكتبة تريدونها بأي اختصاص يخطر ببالكم:
Go Packages
Aِwesome Go
Rust Package Registry

أدناه تجدون التطبيق بأربعة لغات مع طريقة قياس زمن التنفيذ في لينكس 👇

ملاحظة جانبية: أول لغة برمجة تعلمتها هي C++ ودائماً كنت ومازلت أستغرب سبب تقييم المطورين الجدد لها بأنها صعبة، مع ذلك لغة البرمجة مجرد أداة للوصول للهدف النهائي وهو الحصول على التطبيق الرائع الذي سيدر عليكم مليون دولار 😜
لذلك معيار الصعوبة أمر نسبي ومرتبط بعوامل عديدة والتعصب للغة ما عبارة عن سطحية بالغة لحقيقة مغايرة بالكامل لذلك التعصب.

#cpp #c #python #rust #google #go
C++
———
#include <iostream>

int main()
{
double n = 0;
while (n < 1000000000)
{
n+=1;
}
std::cout << n << std::endl;
}
———
$ g++ main.cpp
$ time ./a.out
Rust
———
fn main() {
let mut n: f64 = 0.0;
while n < 1000000000.0 {
n += 1.0;
}
println!("{}", n);
}
———
time ./main.rs
Go
———
package main

import "fmt"

func main() {
var n = 0
for n < 1000000000 {
n += 1
}
fmt.Println(n)
}
———
$ time go run main.go
Python
———
n = 0
while (n < 1000000000):
n+=1
print(n)
———
$ time python main.py
كتاب رائع مع أمثلة تطبيقية لتعلم لغة رست Rust

الكتاب متوفر للعامة برخصة أباتشي وMIT وهو خاضع للتحديثات الدورية ليواكب أحدث إصدارات رست.

الكتاب خاضع حالياً لعمليات ترجمة واللغة العربية من بين تلك اللغات التي سيترجم إليها، مع ذلك انتظار الترجمة خيار غير عملي لذلك أنصح المهتمين أن يحصلوا على الكتاب مباشرة والمساهمة بالترجمة لمن لديه الملكة والوقت.

- رابط الكتاب:
https://doc.rust-lang.org/book/
- رابط الأمثلة:
https://doc.rust-lang.org/rust-by-example/
- رابط مشروع الكتاب:
https://github.com/rust-lang/book
- رابط مشروع الأمثلة:
https://github.com/rust-lang/rustlings

#رست #Rust #كتاب #ebook #book
تستطيعون الحصول على احصائيات لحزم #جافاسكريبت #javascript المتنوعة بدليل الحزم الشهير #npm من خلال خدمة
npm-stat.com

مثال، مقارنة عدد تنزيلات #فيو #vue و #ريكت #react و #سفلت #svelte خلال عام كامل… بهذا الرابط

#تلميح
لتوليد أية مستندات بصيغة #PDF أرشح لكم مكتبة #سي #شارب QuestPDF لمطوري التطبيقات باستعمال إطار العمل #دوت #نت

مكتبة QuestPDF متخصّصة بإنشاء المستندات من شفرة C# مباشرة دون الحاجة لاستعمال مصمم للتقارير وحتى دون الحاجة للحفظ اليدوي كونها توفر ميزة التحميل التلقائي Hot Reload وبالتالي يمكن مراجعة التعديلات مباشرة وبسرعة.

المكتبة تدعم اللغة العربية بشكل كامل و هي متوفرة بترخيص MIT ويساهم بتطويرها العديد من المطورين بشكل نشط كذلك هي متوفره بمخزن الحزم #NuGet وتدعم كل أنظمة التشغيل المدعومة بالدوت نت ( #لينكس #ويندوز #ماكنتوش… إلخ)

- رابط المكتبة:
https://www.questpdf.com/
- رابط المشروع:
https://github.com/QuestPDF/QuestPDF


#QuestPDF #C #net #dotnet
الأداة Converter بسيطة وعملية لتحويل مختلف أنواع الصور وبعض المستندات فيما بينها.

لن تحتاجوا لأية برامج احترافية أو معقدة بعد الآن. #Converter تستعمل #ImageMagick وبالتالي ستحصلون على أفضل أنواع الخوارزميات لأفضل جودة.

المشروع متوفر في #لينكس فقط وباستعمال حزمة #flatpak وهو تحت رخصة GPL3

- رابط الأداة بمتجر Flathub:
https://flathub.org/apps/details/io.gitlab.adhami3310.Converter
- رابط المشروع:
https://gitlab.com/adhami3310/Converter

#تلميح #صور #pdf #document #doc #مستندات #مستند
كنا في منشور سابق تحدثنا عن التطبيق PDF Arranger المتخصّص بتعديل ملفات PDF بطريقة سهلة وأنيقة.

اليوم سنتحدث عن تطبيق أكثر عمقاً واحترافية بالتعديل على ملفات PDF.

المحرّر pdfcpu يعمل بنفس طريقة PDF Arranger لكن يختلف عنه بأنه يحتوي على المزيد من الأوامر المفصّلة كاستخراج الصور والخطوط وإضافة المرفقات وحذفها أو أنشاء ملف من الصفر باستعمال ملفات #json والعديد من الأوامر المفيدة جداً بتعديل ملفات #PDF

على عكس PDF Arranger يعمل #pdfcpu من سطر الأوامر أو كـ #مكتبة برمجية بلغة #غو وهو متوفر على #لينكس و #ويندوز و #ماكنتوش

- رابط الموقع:
https://pdfcpu.io/
- رابط المشروع:
https://github.com/pdfcpu/pdfcpu

ملاحظة على الهامش:
العديد من الشركات والبوتات تستعمل هذا المحرر كونه سهل التثبيت (لا يحتاج لأية اعتماديات) وفائق السرعة بالأداء.

#processor #Go #convert #split #editor #محرر #بوت
أغلبنا عانى من الانقطاعات الفجائية لبعض أهم خدمات المراسلات المجانية (كـ #واتساب #انستاغرام #تيليغرام …إلخ) لذلك كان لابد على أغلبنا العودة لنظام المراسلات الأكثر أماناً والأقدم وهو البريد الإلكتروني لكن وللأسف العديد من المستخدمين لا يستطيعون التعامل مع البريد الإلكتروني بالطريقة المناسبة عدا أنهم يرسلون بالعام رسالة أو أقل!

يأتي هنا التطبيق Delta Chat ليغير كل هذا المفهوم.

يستعمل #دلتا شات البنية التحتية للبريد الإلكتروني ويوفر واجهة مرئية على هواتف #أندرويد و #آيفون وعلى حواسيب #لينكس و #ويندوز و #ماكنتوش ليتعامل المستخدم مع بريده الإلكتروني وكأنه تطبيق مراسلات عادي.

الجميل في الأمر أن جميع الرسائل المرسلة من دلتا لدلتا شات آخر مشفرة وفي حالة أردت مراسلة أي جهة لا تملك دلتا شات فهم يستلمون رسالة بريد إلكتروني عادية.

يستعمل دلتا شات بروتوكول #IMAP كنظام للمراسلات وهو ممتاز كخطة مراسلات احتياطية بدلاً من بروتوكولات المراسلة السريعة المنشرة هذه الأيام.

التطبيق متوفر برخصة GPL3 ووصل لمرحلة نضوج جيدة جداً خلال سنوات التطوير الماضية.

- رابط التطبيق:
https://delta.chat/
- مستودع مشاريعه على Github
#whatsapp
ما نظام التشغيل الذي تستعمله بشكل يومي على حاسوبك؟
Anonymous Poll
73%
ويندوز Windows
22%
لينكس Linux
3%
ماكنتوش macOS
1%
بيركلي BSD
1%
غير ذلك (اذكره بالتعليق)
لمن يريد الحفاظ على أمان بياناته.
نقدم لكم التطبيق SMS Import / Export الخاص -كما يشير اسمه- بـ #تصدير/ #استيراد الـ #رسائل النصية و #سجل الـ #مكالمات و #دفتر الـ #عناوين

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

شخصياً أنا ممن لا يستطيع استيعاب أن أترك بياناتي بسحابة شركة تجارية وبالذات ممن يقدمون الخدمات مجاناً لذلك أعتمد على سحابتي الشخصية وكذلك على بعض الأدوات المساعدة لها.

- رابط متجر F-Droid:
https://f-droid.org//en/packages/com.github.tmo1.sms_ie/
- رابط المشروع:
https://github.com/tmo1/sms-ie

#sms #android #calls #call #contacts
لاحظت مؤخراً أن أكثر من 60% من المشتركين يتركون تنبيهات القناة فعّالة.
كم عدد المنشورات التي تفضل الإطلاع عليها باليوم؟
Anonymous Poll
31%
منشور واحد
35%
منشوران
34%
أكثر من ذلك (شأركنا برأيك بتعليق)
لمطوري إطار العمل #لارافيل الراغبين بتطوير تطبيقاتهم المبنية على أو التي تحتاج لـ #لوحة #تحكم.

نقدم لكم لوحة التحكم Orchid

تستعمل #أوركد كحزمة #Laravel سهلة الاستعمال إذ إنها توفر طريقتين للتثبيت إما بإضافتها لمشروع لارافيل سابق أو بإنشاء مشروع جديد يعتمد عليها.

اللوحة تستعمل محرك قالب HTML التقليدي #Blade وهي تحتوي مسبقاً على كافة الإعتماديات من مخططات بيانية #chart و محرك لبناء النماذج #Form Builder ومحرك للبحث والعديد من الميزات الجاهزة للاستعمال فوراً.

- رابط اللوحة:
https://orchid.software
- لتجربة اللوحة:
https://demo.orchid.software/
- مشروع اللوحة:
https://github.com/orchidsoftware/platform

#php #crud #control #panel #javascript