السبت، 18 يناير 2014

افكار بسيطة صنعت لاصحابها الملايين


السلام عليكم ورحمة الله وبركاته

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




أهم 8 وظائف تكنولوجية في 2014



أكثر الوظائف التي يبحث عنها أصحاب العمل حالياً، والتي ربما تغير مسارك التعليمي من أجلها

إذا كان هناك سوق عمل لا يتوقف، فهو مجال التكنولوجيا، حيث تواصل الشركات التراثية تحويل ملفاتها إلى النظام الرقمي، كما توجد المزيد من الشركات الناشئة كل يوم، فنحن نواجه الزيادة في الطلب على المهنيين المؤهلين تكنولوجيا.

وفقاً لدراسة حديثة عن شركة "روبرت هاف"، فإن 16% من رؤساء المعلومات يخططون لمضاعفة عدد موظفيهم في النصف الأول من عام 2014، وهذا يعني في الوقت الحالي أن أرباب العمل يتطلعون لملء وظائف مهندسي البرمجيات، ومطوري المحمول، ومديري تكنولوجيا المعلومات وهذه من أكبر وأهم الوظائف التكنولوجية لهذا العام.

large11

مهندسو البرمجيات يعملون على تصميم وتطوير وصيانة وتقييم برامج الكمبيوتر والأنظمة، تبعاً للشركة، واجبات مهندسي البرمجيات تتراوح من تطوير تطبيقات جديدة وتخطيط المشاريع لرفع مستوى البرامج الموجودة وتوفير الدعم الأمني. متوسط الراتب السنوي الأساسي: 93030 دولار. عدد ما يوظفه أرباب العمل في الولايات المتحدة: 4461.

large12


مطورو الويب هم المبرمجين المتخصصين في تطبيقات الإنترنت والمتصفح، ويمكنهم أيضاً التركيز على تصميم وعمل موقع على شبكة الإنترنت. متوسط الراتب : 70000 - 113500 دولار.

large13

تبعا للشركة يمكن لهذين الدورين أن يكونا إما منفصلين أو نفس الدور، محللو شبكة النظم يرصدون كفاءة أنظمة شبكة الشركة بما في ذلك شبكات المناطق المحلية (LAN) والشبكات الموسعة (WAN)، وإنشاء شبكات حسب الحاجة، بعض الشركات تسمي هذه الوظيفة مهندس الشبكة، في حين تستأجر الشركات الأخرى مهندسي الشبكات لتكوين البنية التحتية من الصفر، وتصميم وتنفيذ خطط لإنشاء شبكة جديدة. متوسط الراتب: 76000 دولار.

large14

ليس من المستغرب أن تطوير الجوال من أكثر المهن المطلوبة، 56٪ من البالغين في الولايات المتحدة يمتلكون هاتفاً ذكياً، ما هو الهاتف الذكي بدون التطبيقات؟! مطورو الجوال يعملون على التصميم والخلفية وإنشاء التطبيقات، واعتماداً على الشركة، يمكن أن تشمل الترفيه، والمعلومات ، والاتصالات، وأكثر من ذلك. متوسط الراتب السنوي الأساسي: 90920 دولار. عدد ما يوظفه أرباب العمل في الولايات المتحدة: 323.

large15
تختلف وظائف مدراء تقنية المعلومات من قبل الشركة، فإما أن تكون المسؤول عن العمليات الداخلية لتكنولوجيا المعلومات أو التركيز أكثر على الاستراتيجية والحلول القائمة على التكنولوجيا المصممة خصيصاً للعميل. متوسط الراتب الأساسي السنوي: 105168 دولار. عدد ما يوظفه أرباب العمل في الولايات المتحدة: 315.

large16
المبيعات هي الخطوة الأهم وتنميتها يعني أرباح أكثر دون الحاجة إلى وجود خلفية هندسية أو علوم الكمبيوتر، بطبيعة الحال هناك أدوار مختلفة تماماً لأولئك الذين يعملون في المبيعات والتركيز على الإيرادات والحفاظ على الوضع المالي واقفاً على قدميه، في حين أن غيرهم من المهنيين التكنولوجيا مثل المطورين والمبرمجين يركزون على المنتج. متوسط الراتب: 48000 دولار.

large17
مكتب إحصاءات العمل يتوقع أن مشاريع نمو العمالة ستكون 31٪ لمديري قواعد البيانات بين عامي 2010 و 2020، وهو أسرع بكثير من أي وظيفة في المتوسط. متوسط الراتب: 63000 دولار.


large18

سوف تكون أكثر الوظائف التكنولوجية إثارة في آسيا في عام 2014، الموقف يصبح مثيراً أكثر في الولايات المتحدة الأميركية كذلك، وللسبب نفسه: التحرك نحو البيانات الكبيرة، والخدمات السحابية والأمن الإلكتروني. في عام 2011، استأجر عمدة مدينة نيويورك السابق "مايكل بلومبرغ"، استأجر "راشيل هوت" كأول رئيس تنفيذي رقمي في المدينة، و"ثرى سرينيفاسان" أستاذ الصحافة في جامعة "كولومبيا" منذ فترة طويلة، أول رئيس تنفيذي رقمي في عام 2012، وبعد ذلك بعام أصبح أول رئيس تنفيذي رقمي لمتحف "متروبوليتان". متوسط الراتب الأساسي السنوي: 108000 دولار.

منقول للفائدة

الاثنين، 13 يناير 2014

تهنئة بمولد الحبيب المصطفى صلى الله عليه وسلم

بسم الله الرحمن الرحيم

ذكرى مولد الحبيب المصطفى صلى الله وعليه وسلم

الحمد لله حمد الشاكرين ولا عدوان الا على الظالمين، والصلاة والسلام على خير من وطئت قدماه الشريفتان الأرض ثم أما بعد، فما أعطرها من ذكرى وما أحلها من أيام ونحن نشهد فيها ميلاد خير البرية محمد صلى الله وعلية وسلم.

في هذا اليوم المشهود لا يسعني إلا أن أتقدم بالتهنئة القلبية الحارة إلى كل من عشق النبي صلى الله وعلية وسلم وصار له نبراساً ومعلماً يقتدي به ويسير على دربه وخطاه إلى الأمة الإسلامية جمعاء بمختلف مشاربهم وأطيافهم وعرقهم  فكل هذه الاختلافات تزول على صخرة الاسلام العظيم فلا عرق يفرقنا ولا لون أو طيف .. بل نَّ أَكْرَمَكُمْ عِنْدَ اللَّهِ أَتْقَاكُمْ".  وعليه أحبتي أذكركم وأذكر نفسي بتقوى الله وطاعتة والتمسك بسنة نبيه صلى الله عليه وسلم فيقول عليه الصلاة والسلام "عليكم بسنتي وسنة الخلفاء الراشدين المهديين من بعدي تمسكوا بها، وعضوا عليها بالنواجذ، وإياكم ومحدثات الأمور فإن كل محدثة بدعة، وكل بدعة ضلالة". (مسند أحمد 4/126، وانظر صحيح الجامع 2546). 

صلى عليك الله يا علم الهدى ما هبت النسائم وما ناحت على الأيك الحمائم
صلى عليك الله يا علم الهدى ما هبت النسائم وما ناحت على الأيك الحمائم
وأحسن منك لم تر قط عيني
وأجمل منك لم تلد النساء
خلقت مبرأ من كل عيب
كأنك قد خلقت كما تشاء

كل عام وأنتم بخير وعام هجري مبارك بإذن الله.


الأحد، 12 يناير 2014

اوركل 12c أكثر 17 مميزات هامة للمطورين 4/17


Longer Varchar2
السلام عليكم ورحمة الله وبركاته، أهلا وسهلاً بكم في هذه التدوينة الجديدة  ومع الميزة الرابعة من الميزات الجديدة المضافة على اوركل 12c


معظمنا بل يكاد يكون كلنا تعامل مع الVarchar2  سواءً في بناء الجداول أو في بيئة PLSQL في السابق كان maximum size of varchar2 = 4000 bytes لكن مع اوركل 12c أصبح الحجم الأقصى 32676 bytes
لكن  يجب تعديل التالي:
·        MAX_STRING_SIZE يجب ان يكون EXTENDED
·        DB must be in upgrade mode
وبتالي لزيادة Maximum Size of VARCHAR2, NVARCHAR2, and RAW Columns
1.    Shut down the database.
2.    Restart the database in UPGRADE mode.
3.    Change the setting of MAX_STRING_SIZE to EXTENDED.
4.    Run the rdbms/admin/utl32k.sql script. You must be connected AS SYSDBA to run the script.
5.    Restart the database in NORMAL mode.

وصل بنا قطار العلم ان نهاية هذه المحطة، نراكم في المحطة التالية وهي  Outer Joinان كان لنا في العمر بقية. الى ذلك الوقت دمتم بحفظ الله ورعايته.


السبت، 4 يناير 2014

اوركل 12c أكثر 17 مميزات هامة للمطورين 3/17

القيمة الافتراضية للعمود/ الحقل Default Value
السلام عليكم ورحمة الله وبركاته، اليوم نستكمل مشوارنا في التعرف على أهم ميزات ذلك العملاق المدعو Oracle 12c وكما ذكرنا سابقاً بأن حديثنا سيكون موجه لمطوري قواعد البيانات وليس مدراء قواعد البيانات.


إذاً أهلاً بكم من جديد، في هذه التدوينة سنتحدث بإذن الله عن القيمة الافتراضية حيث انه يفترض كل مطوري قواعد البيانات قد تعامل مع هذه الميزة في النسخ السابقة ل12c ، لكن كانت الإمكانيات محدودة ولتوضيح الميزة الجديدة دعونا نجري السناريو التالي، افترض بأنه يوجد جدول في قاعدة بياناتك على الشاكلة التالية:
CREATE TABLE account_tb
    (
    Seq                                   NUMBER(11),
    Account_Id                            NUMBER(11,0),
    Account_name                          VARCHAR2(80),
    email                                 VARCHAR2(50),
    SSN                                   NUMBER(15,0),
    Last_dept_Dt                          DATE,
    Insert_By                             VARCHAR2(30) DEFAULT USER,
    Insert_Dt                             DATE DEFAULT SYSDATE
    )

لاحظ معي عزيزي المبرمج ان القيمة الافتراضية للعمود Insert_By  هو عبارة عن المستخدم الذي قام بعملية إضافة السجل الى الجدول في قاعدة البيانات وكذلك Insert_Dt  يأخذ التاريخ والوقت تلقائياً وذلك في حال أن السجل المدخل لا يشمل قيم لهذه الأعمدة. ولا شك ان هذه الميزة سهلت كثيراً من عمل مبرمجي ومطوري قواعد البيانات لكن ! ماذا لو اردنا ان تكون القيمة الافتراضية للعمود Seq عبارة عن  Sequanceمثلاً ما قبل 12c كان يتم ذلك من خلال انشاء Trigger  على الجدول كتالي:
CREATE OR REPLACE TRIGGER acnt_trg
 BEFORE
  INSERT
 ON account_tb
REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW
begin
  select MY_SEQ.NEXTVAL into :NEW.SEQ FROM DUAL;
END;
/


لكن اليوم واعتباراً من اوركل 12c أصبح بالإمكان ان يتم إضافة الSequance  في Default value  للعمود كما في التالي:
CREATE TABLE account_tb
    (seq                      NUMBER(11,0) DEFAULT MY_SEQ.NEXTVAL ,
    account_id                     NUMBER(11,0),
    account_name                   VARCHAR2(80 BYTE),
    email                          VARCHAR2(50 BYTE),
    ssn                            NUMBER(15,0),
    last_dept_dt                   DATE,
    insert_by                      VARCHAR2(30 BYTE) DEFAULT USER,
    insert_dt                      DATE DEFAULT SYSDATE)
 بتأكيد يمكنك استغلال هذه الميزة في بناء Master/Detail Relation. ولكن عزيزي المبرمج يوجد شروط بسيطة قبل استخدام هذه الميزة وهي:
1.      يجب ان تكون Sequence  المستخدمة كقيمة افتراضية منشأة مسبقاً
CREATE SEQUENCE my_seq
  INCREMENT BY 1
  START WITH 1
  MINVALUE 1
  MAXVALUE 999999999999999999999999999
  NOCYCLE
  ORDER
  NOCACHE
 يمكنك مراجعة كيفية انشاء الSequence  فهي ليست موضوع نقاشنا في هذه التدوينة.
2.      يجب منح صلاحيات على Sequence  لUsers /  Roles الذين يملكون صلاحية ادخال على الجدول.
GRANT SELECT ON my_seq TO my_role

أيضاً يمكنك أن تعطي قيمة افتراضية في حال ان القيمة المدرجة على الجدول عبارة عن NULL Values  ولتوضيح الفكرة نتابع المثال التالي:
create table pay_tb (
             seq number(11) MY_SEQ.NEXTVAL,
             acc_id NUMBER(11),
             sal_val number default on null 0
             );

 وفي حال ادراج بيانات في الجدول كما في التالي :
insert into pay_tb (acc_id,sal_val) values (1, null);
insert into pay_tb (acc_id,sal_val) values (2, 2);

تكون نتيجة المدرجة في الجدول
select *
from pay_tb;
seq       acc_id          sal_val
---------- ---------     ---------     
1           1             0
2           2             2


وصل بنا قطار العلم ان نهاية هذه المحطة، نراكم في المحطة التالية وهي Longer Varchar2 ان كان لنا في العمر بقية. الى ذلك الوقت دمتم بحفظ الله ورعايته.

اوركل 12c أكثر 17 مميزات هامة للمطورين 2/17

اخفي بياناتك الهامة من عيون المتطفلين
                                                              تقنية جديدة في أوركل 12c
تزداد أهمية البيانات يوماً بعد يوم، وأصبح أمن المعلومات والمحافظة على البيانات هاجساً يؤرق المطورين وخاصة بعد تزايد استخدام الشبكة العنكبوتية (الانترنت).



وأنت واحد من أولئك الأشخاص الذين تقع على عاتقهم جزء كبير من هذه المسئولية، لتوصيل الفكرة من هذه التدوينه أعددت هذا السيناريو، إفترض انك تعمل في تطوير نظام بنكي وبتالي فأنت بحاجة الى إخفاء بعض البيانات الحساسة عن أعين مستخدمي النظام وخاصة المتطفلين مثل آخر عملية سحب من الرصيد, وكذلك Social Security Numbers (SSN)  وأشياء كثيرة آخرى.
لتتمكن من إخفاء بعض الأعمدة من الجدول في الطريقة التقليدية القديمة تحتاج أولاً ان يكونوا مستخدمي النظام Real Users  مستخدمين حقيقين على مستوى قاعدة البيانات. ولتوصيل الفكرة بشكل مبسط تخيل معي انه يوجد جدول منشئ فعلياً على قاعدة البيانات اسمه Accounts_Tb
CREATE TABLE account_tb
    (
    Account_Id                            NUMBER(11,0),
    Account_name                          VARCHAR2(80),
    email                                 VARCHAR2(50),
    SSN                                   NUMBER(15,0),
    Last_dept_Dt                          DATE
    )

ونريد إخفاء بيانات ال SSN, Last_dept_Dt Columns , أولاً نقوم بإنشاء , View  من هذا الTable على النحو التالي:
CREATE VIEW account_vw
AS
SELECT A.Account_Id, A.Account_name, A.email
FROM   account_tb A ;

ثم نقوم بعمل CREATE public synonym لهذه الView ولكن اسمها يكون عبارة عن اسم الجدول الرئيسي المنشأ منه الView  وهو account_tb
CREATE public synonym account_tb FOR  SCHEMAX.account_vw

الان نقوم بمنح مستخدمي نظام صلاحية على هذه ال synonym والتي هي بدورها اسم الجدول الخاص بك كما هو موضح سابقاً.
grant select ON account_tb TO USERX;
grant select ON account_tb TO ROLEX;

وبتالي في حال الاستعلام من قبل USER ال USERXأو من قبل المستخدمين الذين معهم صلاحيات على ROLE ال ROLEX فإن النتيجة تكون كتالي:
SELECT *
FROM  account_tb;
الحقول/الاعمدة التي سوف تظهر للمستخدم
Account_Id| A.Account_name| A.email
تمام، تم إخفاء البيانات الحساسة من أعين متطفلي النظام. لكن ماذا لو أردنا أن نقوم بعمليات DML (Data Manipulation Language)
[Insert, Update, Delete] نحتاج الى تعديل في الview  بإضافة INSTEAD OF Trigger   يمكنك مراجعة ذلك ان لم يكن عندك معلومات كافية عن ذلك لأنه ليس موضوع مقالنا.
لكن مهلاً، يبدو ان ذلك مرهقاً لك كمبرمج قواعد بيانات، إذاً ما الحل في إخفاء البيانات الحساسة ؟
لا تقلق عزيزي المطور يوجد ميزة جديدة في Oracle 12c  للقيام بهذه المهمة دون حاجة الى الجهد البرمجي وذلك كتالي:
مرحلة انشاء الTable
CREATE TABLE account_tb
    (
    Account_Id                            NUMBER(11,0),
    Account_name                          VARCHAR2(80),
    email                                 VARCHAR2(50) invisible,
    SSN                                   NUMBER(15,0) invisible,
    Last_dept_Dt                          DATE
       )



وبتالي عند عمل Select   فإن الاعمدة/ الحقول المخفية عن أعين مستخدمي النظام لا تظهر، ووبهذا تكون قد أخفيت بياتك الحساسة دون أدني جهد منك.
SELECT *
FROM  account_tb;
الحقول/الاعمدة التي سوف تظهر للمستخدم
Account_Id| A.Account_name| A.email

ادخال البيانات:
insert into account_tb(1,'test','test@palsoft.blogspot.com');


وصل بنا قطار العلم ان نهاية هذه المحطة، نراكم في المحطة التالية وهي Default Values ان كان لنا في العمر بقية. الى ذلك الوقت دمتم بحفظ الله ورعايته.