Making your code record independent

The problem

what if you’re writing code that will need a certain record from database with a specific property just to use its ID elsewhere in another piece of code ? , to make it more clear lets take an example

you have an application made with ruby on rails a blog for example, each blog post has 2 types (standard, important), and you assign tags to the post to label them if this is standard or important, now we want to create a piece of code that will generate a chart of important posts and standard posts in each day.

to do it the normal way

  1. select the tag with name “important” call it X
  2. select tag with name “standard” call it Y
  3. select posts in every day for X.id
  4. select posts in every day for Y.id
  5. generate chart with the data you got.

will it is quite simple, the problem will arise when you give the user the ability to rename tags, what will happen if the user renames “important” to “urgent” ?, the code will be useless, it will break instantly.

The solution

do-no-depend-on-labels, you have to invent another thing to flag the “important” tag record and then select using this flag.

my implementation is.

  1. add another column “flag” -> integer to “tags” table
  2. make 2 constants as flags values for examples assume (important=1, standard=2)
  3. now give the record with “important” name flag=1
  4. and give the record with “standard” name flag=2
  5. and modify the code to select using the flags
  6. now if user changed name it wont effect the code.

this solution has another benefit, you can create an interface for the user to change the tags that represent the important flag, the interface will remove flag from “important” record and add it to any other record, your code will run smooth will fit the new situations perfectly.

 

Rails 4 Single Table Inheritance weird behavior

Rails 4 allows you to use Single table Inheritance , as you can use single table and each record could be linked with different model and all table models are forming a tree using inheritance.

if you have this structure

  1. main model “Company”
  2. model “Firm” inherit “Company”
  3. model “FirmChild” inherit “Firm”

open rails console “rails c” and create new “FirmChild”

FirmChild.create!(name: ‘pixelware’)

now close the console and reopen it, try to query pixelware from Firm

Firm.where(name: ‘pixelware’).count

it will return 0, he won’t find the record, now try this line

FirmChild

and then try the previous line again

Firm.where(name: ‘pixelware’).count

it’ll return 1, tada now it get your company, this problem is due to the class FirmChild wasn’t loaded and you had to load it then query from the parent.

this problem exists in rails 4 development mode not the production mode, and it doesn’t exists in production mode as :

config.eager_load = true

this will make your production mode load all classes at startup, this problem drive me nuts, but with some tracing and figured it out,

happy coding.

Error Removal of Linking windows.h with a DLL

i was creating a new DLL project for a solution i’m creating, i were using C++ and windows API (windows.h), the project was running all fine as a console project, and when i starting porting it as DLL started firing errors like crazy errors were as follows :

Error 1 error C2065: ‘DRIVE_LAYOUT_INFORMATION_EX’ : undeclared identifier d:\projects***.cpp 13 pxdarwin
Error 2 error C2070: ”unknown-type”: illegal sizeof operand d:\projects\***.cpp 13 pxdarwin
Error 3 error C2065: ‘PARTITION_INFORMATION_EX’ : undeclared identifier d:\projects\***n.cpp 13 pxdarwin
Error 4 error C2070: ”unknown-type”: illegal sizeof operand d:\projects\***.cpp 13 pxdarwin

these errors were becase something weird, i figured out that the problem is the visual studio DLL template is adding this line to  ”stdafx.h” by default :

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers

and commenting this line will make the compiler add the features you are using and will make it shut up and compile your application.

هواية قتل الأنشطة الطلابية

لنتأمل أولآ معآ الخبر التالى :

اليوم كما كان مقرر عقد فاعلية سينما المرأة بجامعة سوهاج، والتي يشترك في تنظيمها مشروع شُجّة بالتعاون مع أسرة إشراقة ومجموعة ميديا سوهاج. لكن تم إلغاء الفاعلية بأمر من نائب رئيس جامعة سوهاج الأستاذ الدكتور/ عثمان محمد المغربى بدون أي أسباب مع العلم أن المنظمون كانوا قد أتمموا الإجراءات والموافقات القانونية كلها من قبل الجامعة. ولكن ما حدث أنه تم طرد المنظمون وكذلك الحضور من القاعة المقرر إقامة الفاعلية بها وتم تمزيق الللافتات ولم يتوقف الأمر إلى ذلك، فقد تم التعدي على المنظمون بألفاظ نابية وتم القبض على يحيى الزعاق من مشروع شًجّة ومينا فايق وعبد الرحمن مهاتير عضوي أسرة إشراقة من قبل أمن الجامعة وتهديدهم بأن إستمرارهم في إقامة مثل تلك الفاعليات يضر بمستقبلهم في كلياتهم موضحين أن الفاعليات التي تخص قضية المرأة “ملهاش لازمة” ثم تركوهم دون إكمال الفاعلية — المصدر : https://www.facebook.com/photo.php?fbid=650339028324879&set=a.613354125356703.155957.593710667321049&type=1&theater

الأنشطة الطلابية

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

الواقعة بين ايدينا

لست من جامهة سوهاج و لم اطئها يومآ ولكن هذا غير ضرورى للحكم على الواقعة من الخبر السابق، يمكننا اولآ النظر لمنسقى الفعالية -بغض النظر عن هدفها- المنسقين اكثر من تجمع طلابى مما يوحى بأهمية الفعالية و الجهد المبذول و الإهتمام المنصب على تنظيمها،  فكان من باب اولى ان تهتم الجامعة و الإدارات و المكاتب المعنية بتنسيق الفعالية مع تلك المجموعات، فأنا كما اعلم هناك مكاتب و عاملين يحملون الدولة مرتبات و غيرها من المصروفات فقط ليكون عملهم هو تنظيم العمل الطلابى التطوعى فيما يسمى “مكاتب رعاية الطلاب” فأين موقف هؤلاء ؟ يمكنك ان تجدهم فى معظم الأحوال متقاعسين عن العمل او ممتنعين عن العمل او فى افضل الأحوال ليس بيدهم حيلة بسبب الإدارة العليا للكليات،

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

اليوم كما كان مقرر عقد فاعلية سينما المرأة بجامعة سوهاج، والتي يشترك في تنظيمها مشروع شُجّة بالتعاون مع أسرة إشراقة ومجموعة ميديا سوهاج. لكن تم إلغاء الفاعلية بأمر من نائب رئيس جامعة سوهاج الأستاذ الدكتور/ عثمان محمد المغربى بدون أي أسباب مع العلم أن المنظمون كانوا قد أتمموا الإجراءات والموافقات القانونية كلها من قبل الجامعة. ولكن ما حدث أنه تم طرد المنظمون وكذلك الحضور من القاعة المقرر إقامة الفاعلية بها وتم تمزيق الللافتات ولم يتوقف الأمر إلى ذلك، فقد تم التعدي على المنظمون بألفاظ نابية وتم القبض على يحيى الزعاق من مشروع شًجّة ومينا فايق وعبد الرحمن مهاتير عضوي أسرة إشراقة من قبل أمن الجامعة وتهديدهم بأن إستمرارهم في إقامة مثل تلك الفاعليات يضر بمستقبلهم في كلياتهم موضحين أن الفاعليات التي تخص قضية المرأة “ملهاش لازمة” ثم تركوهم دون إكمال الفاعلية

How to export images with large sizes from small size image in fireworks

couple hours ago i ran into a weird problem, i designed a 540x628px image at a 72dpi using fireworks, the image is vector based and could be easily resized.
i had to resize the image to large size for outdoor printing (60cmx70cm 300dpi)
the problem is when i tried to change the image size from fireworks it raised an error
so i couldn’t resize it to that large size because insufficient memory i think.
after searching the internet and hitting my head to the keyboard i found a way to do it.
from menus : File -> Save As… -> we should choose “save as type : JPEG”
from the options button : choose format : png24
and from File tab write the new dimensions in Pixels in my case 7087x8242px
then export.

إختراق : الفصل السابع : الإصطياد

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

العلاقات البشرية فى مجملها كالشبكة كل نقطة تمثل شخص و كل خط يمثل علاقة كلما كانت العلاقة اقوى كان الخط سميك و عند تأثر طرف من اطراف العلاقة سيكون تأثيرها قويآ فى الطرف الآخر، يمكنك الوصول لشخص ما عن طريق اتباع الطريق فى تلك الشبكة بالتأثير على العناصر المتاحة لك، هناك عدة خوارزميات للتعامل مع الشبكات فغن كنت تعرف الخوارزمية المناسبة للتعامل مع تلك الشبكة والتى نسميها شبكة موزونة غير موجهة weighted undirected graph و قمت بتطبيقها للبحث عن العنصر فى الحقيقة، تكون قد ازلت ذلك الحاجز بين النظرية و التطبيق بل تكون قد فجرت ذلك الحاجز.

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

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

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

توقفت سيارة الشرطة امام محل شهير بميدان بوسط المدينة نزلت الجنود و الضباط و اقتحموا المكان، لاحظت تلك السيارة الفان التى كانت تقف اما منزلى عند اغتيال والدتى و صعد الدم لرأسى غضبآ، خرجت القوة ممسكة بصاحب المحل او شخص ما حظه سىء اليوم ليستجوبوه بشانى على الأرجح، فتحت جهاز حاسب محمول، الذى قمت بتوصيله بشبكة لاسلكية adhoc مع جهاز حاسب آخر متصل بروبوت next  يتحكم فى قناصتى مع كاميرا بتكبير 3 اضعاف على احد اسطح البنايات المجاورة ، الكاميرا تبث لجهازى مباشرة ، قمت بالتوجيه لكتف احد الضباط و اطلقت الرصاصة، لحسن الحظ ان تلك القناصة مزودة بمشتت للهب لتخفيف الإرتداد، انطلقت الرصاصة بسرعة 830 مثر فى الثانية لتخترق عظمة لوح الكتف لدى الضابط و تلقيه ارضآ مخلفة الكثر من الدماء من مكان خروجها بالظهر، انبطح الضابط الآخر و جرى الرجل المقبوض عليه و خرج 3 افراد بزى اسود من العربة الفان كل منهم يحمل زوج من المسدسات فى كل يد، اتخذوا ساتر ليكون الساتر بينهم و بين مكان انطلاق الرصاصة، هؤلاء الشباب مدربين فعلآ، لم يطلقوا رصاصة واحدة و انتظروا فعلآ آخر منى، حسنآ لنعطيهم الكثير من المرح.

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

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

امسكت بأطراف الهوفر كرافت و قطعت التيار لتسقط سقوطآ حر بإتجاه النهر، يبدو ان ذلك الطيار لديه اوامر مشددة بإنهاء حياتى حتى انه انطلق خلفى بطريقة رأسية إن رآها الحاج “بروس ويلس” لبكى من فرط الإثارة.

والآن سنقدم لكى سيدتى طريقة عمل المدفع الكهرومغناطيسى، المقادير : سلك نحاسى و اسطوانة و مكثفات و بطاريات و مفتاحين سويتش، قمت بلف السلك على الإسطوانة بكثافة و قم يتوصيل دائرة مقفلة من البطاريات و المفاتيح و المكثفات مع اطراف السلك، سيدى قومى بشحن المدفع لمدة 10 دقائق او اكثر و اتركيه فى وضع الأستعداد و عند السقوط الحر قومى بفصل التيار عن السلك لتقوم المكثفات بإطلاق الدفعة الكهرومغناطيسية بإتجاه الحوامة لتتلف كل اجهزتها الكهربائية فورآ و سيمكنك بعدها تشغيل الهوفر كرافت و لتسقط الطاشرة خلفك فى النهر و ليتولى الأفراد بتاخلها مسئولية انفسهم و الآن نعود لتلك الفان ، لن يمكنن متابعة المراقبة انطلقت ناحيتها على ارتفاع 10 امتار ثم هبطت على الكوبرى، رأيت السائق ينزل منها و هو يسحب سلاحه من جانبه، لكنه إن كان مدربآ كفاية لكان من القوة الضاربة، عادة السائقين يكونون الأقل كفاءة فى المجموعة و لكننى لا يجب ان استهين بتدريباته أيضآ، فور رؤيتى لساقه على الأرض اطلقت عليها رصاصة من السلاح عيار 9 مم قمت بشراؤه و تجهيزه كخطة بديلة، سقط ارضآ اطلقت رصاصة اخرى على يده المسلحة و انا اقترب منه وقفت قرب رأسه، و نظرت له نظرة “أن لم تفيدنى لتنفجر رأسك تلقائيآ” و للتأكيد اطلقت رصاصة لتدفن نفسها فى فخذه الآخر لتتضاعف آلامه، انتظرت 5 ثوانى لأرى إن انهارت دفاعاته و عندما لم يتكلم اطلقت الرصاص على يده الآخرى ووجهت السلاح لرأسه، كل هذا وسط صراخ المارة و هرولتهم بعيدآ، -لكننى لن يمكننى التراجع الآن ليس قبل ان اعرف- اخيرآ تكلم الوغد بعد ان افقدته اطرافه الأربعة، قال انهم قوة ضاربة مستقلة تأتيهم الأوامر عبر الأنترنت و عن طريق الهاتف النقال و إنه لايعرف بلا بلا بلا، التقطت الهاتف من جيبه و اغلقته بينما اعود للهوفر كرافت و انطلق بعيدآ، لن يكون الأمر سهلآ أبدآ، أشعر بذلك.

شياطين من السماء

حين تمشى فى عالمك
تبحث عن السلام
و تسقط الشياطين من السماء
باجنحة سوداء عظيمة تعلوا السماء
و تنشق الطرق تحتك لتلفظ الجحيم
و تسقط فى هوة اللاعودة
و يسبقق الدموع و الصراخ
و قرع الطبول و اصوات الجحيم
حينها تعرف انه لم يكن للامر اهمية
لم يكن هناك غير ذلك الذى تملكه
و لكنك الان لاتملك الا
الصراخ
مستوحاه من Demons fate – within temptation

قاعة الشهرة

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

مستوحاة من Hall of fame – The script

A web developer blog