Fagun Rain
Who am I?

A man who has lot of dreams. And thought, imagination is the best power of him. Honest in each job. And believe, good communication can make anything perfect.

Work for free or full price. Never for cheap

Favourite Quotations

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

“If you don’t build your dream, someone else will hire you to help them build theirs.”
-Dhirubhai Ambani

"Walking on water and developing software from a specification are easy if both are frozen."
-Edward V Berard

Skills

Database Management

SQL
80%
MySQL
90%
SQLite
80%
MS SQL Server
60%

Documentation

LaTeX
50%

Graphics

Flash
40%
Photoshop
40%

Marketing

SEO
90%

Mobile App Development

Windows Phone
60%
Android
30%

Other

Troubleshooting
80%
MS Powerpoint
90%
MS Excel
50%

Software Development

OOP
80%
Java
50%
C++
40%
Batch
70%
C
60%

Web Development

PHP
50%
CSS
90%
HTML
100%

Works

Blog

সিকিউরিটিতে ব্লাক লিস্ট এবং হোয়াইট লিস্ট ভেলিডেশন

ডেভলাপাররা ইউজারদের/সার্ভিসের কাছ থেকে যে ফরমেটে ডাটা চায়, ইউজার/সার্ভিস থেকে সেই ফরমেটে ডাটা নাও আসতে পারে। এছাড়া হ্যাকাররা ভিন্ন ফরমেটের ডাটা দিয়ে চেষ্টা চালাবে এবং সেটাই স্বাভাবিক। এই সমস্যা সমাধানের জন্যে আমরা ডাটা ভেলিডেশনের ব্যবস্থা করি। ডাটা ভেলিডেশনকে মূলত ২ ভাগে ভাগ করা যায়।
১। Black List Validation
২। White List Validation

Black List Validation

আমরা সাধারণত, কোন ধরণের/কি ডাটা ইনপুট করা যাবে না তা সিলেক্ট করি। এই সিলেক্টেড ডাটাগুলোকে ব্লাক লিস্ট বলা হয়। পরবর্তিতে ব্যাক এন্ড কিংবা ফন্ট এন্ডে ইউজার প্রদানকৃত ডাটাগুলোকে ব্লাক লিস্টে খুজে না পাওয়া গেলে সেই ডাটাগুলোকে ভেলিড ডাটা হিসেবে বাচাই করা হয়। ডাটা ভেলিডেশনের এই পদ্ধতিকে বলা হয় Black List Validation ।

White List Validation

আবার কখনো আমাদের প্রোগ্রামের ভেলিডেশনকে এমনভাবে ডিজাইন করা হয় যেখানে ভেলিড ডাটাগুলো দেওয়া থাকবে এবং আমাদের প্রোগ্রাম চেক করে দেখবে এপ্লিকেশনে প্রদত্ত ডাটা সেই লিস্টে রয়েছে কি না। যদি এপ্লিকেশন ইনপুটকৃত ডাটা পূর্বে ডিফাইন করা লিস্টে পায় তাহলে ডাটাকে ভেলিড ডাটা বলে চিহ্নিত করে। এই ধরণের ভেলিডেশন প্রক্রিয়াকে বলা হয় White List Validation । এখানে ভেলিড ডাটাকে বলা হয় White List

Balck List Validation vs White List Validation

অনেকের দৃষ্টিতে Black List Validation কে অধিক কার্যকর মনে হলেও সত্যিকার অর্থে White List Validation অধিক পরিমাণে সিকিউরিটে প্রদান করতে সক্ষম।

কেন White List Validation অধিক সিকিউর

একটি মিটিং রুমের কথা চিন্তা করা যাক। যেখানে উল্লেখ করা আছে, লুঙ্গি, টি-শার্ট কিংবা সেন্ডেল পড়ে আশা যাবে না। পরবর্তিতে একজন লুঙ্গির পরিবর্তে ধোতি পরে আসল। এবং মিটিং’এর নিয়ম অনুসারে সে ভেলিড । কিন্তু পরবর্তিতে কতৃপক্ষ উল্লেখ করে দিল, ধোতি পরেও আশা যাবে না। এবং পরবর্তিতে অন্য একজন টি-শার্টের পরবর্তিতে পার্টি ড্রেশ পরে আসল যার ফলে সেও ভেলিড। কিন্তু কম্পানি তখন নতুনভাবে বলে দিল পার্টি ড্রেশ পরে আসা যাবে না। পরবর্তিতে অন্য একজন সেন্ডেল পরে আসল যা তার ব্লাক লিস্টের মধ্যে উল্লেখ করা নেই। কতৃপক্ষ পুনরায় বলল, কেউ সেন্ডেল পরে আসতে পারবে না। এভাবে ব্লাক লিস্ট ধীরে ধীর বাড়তে থাকবে এবং এই ব্লাক লিস্টকে স্টেবল করাটা অনেকটা ডিফিকাল্ট হয়ে দাঁড়াবে। কিন্তু মিটিং বোর্ড পরবর্তিতে বলল, জিন্স, শার্ট, শো, কের্স, কোট পরে যে কেউ মিটিং রুমে জয়েন করতে পারবে। তখন গার্ডের জন্যে ভেলিড ব্যাক্তি খুজে বের করা সহজ হবে এবং পরবর্তিতে সিস্টেম পরিবর্তনের সংখ্যা তুলনামূলকভাবে কম হবে।
সিকিউরিটির ক্ষেত্রেও বিষয়টি একই। শুরুতে আমরা কিছু ফ্রিকুয়েন্ট ফরমেট উল্যেখ করে দিতে পারি কিন্তু সময়ের পরিবর্তনের সাথে আমাদের লিস্টও বাড়তে থাকবে। অন্যথায় আমাদের ভেলিড ডাটাগুলো শুরুতেই উল্যেখ করে দিলে আমাদের প্রোগ্রামের সিকিউরিটি অধিকতর স্টেবল হবে।

, , , ,

Application Level Security তে Access Control কি, কেন এবং কিভাবে?

যেকোন এপ্লিকশনের সিকিউরিটির জন্যে প্রথমে আমাদের নজর দিতে হবে Access Control এ। এটি এপ্লিকেশন সিকিউরিটির সর্বপ্রথম ধাপ। অন্যান্য দিক যতই সুনিশ্চিত করি না কেন, Access Control এ দুর্বলতা থাকলে আপনার এপ্লিকেশন হ্যাক হবার সম্ভাবনা অনেক বেশী’ই থেকে যায়।

সাধারণ Access Control মডেল

Access Control Model

সোর্সঃ owasp.org

Access Control কি?

থিউরিকাল সংজ্ঞায় না গিয়ে একটি এক্সাপ্লের মাধ্যমে বোঝার চেষ্টা করি। মনে করি, আপনি একটি POS & Accounting সিস্টেম ব্যবহার করছেন, যেখানে তিন ধরনের ইউজার রয়েছে।
১। সেলস ম্যান।
২। সপ ম্যানেজার
৩। বিজনেস এক্সিকিউটিভ
সাধারণত সেলস ম্যান কোন পণ্য কিনা বেচার পর তার রিসিট দয়ে এবং তা সিস্টেমে স্টোর করে রাখে। সপে নতুন কোন পণ্য আসলে তা সিস্টেমে ইনপুট দয়ে এবং ইনপুটকৃত ডাটা সপ ম্যানেজার কতৃক ভেলিডেট হতে হয়। এছাড়াও সপ ম্যানেজার বিভিন্ন পণ্যের মূল্য পরিবর্তন, নতুন সেলস ম্যানের একাউন্ট তৈরি করা, তাদের বেতন পরিবর্তনসহ অন্যান্য কাজ করতে পারে যা সেলস ম্যান করতে পারে না। এবং বিজনেস এক্সিকিউটিভে দিন শেষে কিংবা মাস শেষে একটা রিপোর্ট দেখে এবং সব ধরণের একটিভিটির অধিকার রাখেন।
এই সিস্টেমের প্রত্যেকের নিজ নিজ কাজগুলো করতে দেয়াই এক্সেস কন্ট্রোল। অর্থাৎ, সেলস ম্যান চাইলেই সপ ম্যানেজারের কোন কাজ করতে পারবে না, সপ ম্যানেজার বিজনেস এক্সিকিউটিভের কোন কাজ সম্পন্ন করতে পারবে না। প্রতিটি ইউজার তার লেভেলের কাজ করতে পারবে। এই জিনিসটি নিশ্চিত করাই এপ্লিকেশন সিকিউরিটিতে এক্সেস কন্টোল বলা হয়।
থিউরিকালি সংজ্ঞায়িত করতে হলে আমাদের বলতে হবে,

“Authorization is the process where requests to access a particular resource should be granted or denied. It should be noted that authorization is not equivalent to authentication – as these terms and their definitions are frequently confused. Authentication is providing and validating identity. Authorization includes the execution rules that determines what functionality and data the user (or Principal) may access, ensuring the proper allocation of access rights after authentication is successful.
“/

OWASP
কেন এক্সেস কন্টোল পয়োজন?
আমাদের সাধারণ একটি ধারণা, সিস্টেম আমরাই ব্যবহার করছি, তাহলে হ্যাক করবে কে?
কিন্তু আপনি কিভাবে নিশ্চিত করতে পারবেন, আপনার সেলস ম্যানের কম্পিউটার কোন ধরনের ম্যালওয়্যার কিংবা ভাইরাস দ্বারা আক্রান্ত হয় নি? এছাড়া আপনার কোন ইমপ্লয়ি কোনভাবে ম্যানেজার এক্সেস নিতে পারলে সে অবশ্যই নিজের সেলারী পরিবর্তন করে দিতে চাইবে কিংবা সপের কোন হিসেব পরিবর্তন করে দিতে পারে যা কোম্পানির জন্যে খুবই বিপদজনক। এছাড়া একজন সেলস ম্যান, ম্যানেজের লেভেলের এক্সেস নিতে পারলে, সে চাইলেই অন্য সেলসমেনের একাউন্টে যেকোন ধরণের পরিবর্তন করতে সম্ভব হবে। প্রতিটি কাজেই খুব’ই বিপদজনক। এছাড়া আমরা যদি আরও জটিল কোন সিস্টেমের কথা চিন্তা করি তাহলে ক্ষতির পরিমাণ আরও হাজারগুণ বেশী হতে পারে।

Access Control এটাকের প্রকারভেদ

সাধারণত ৩ ধরণের এটাক হয়ে থাকে,
১। Vertical Access Control Attacks
২। Horizontal Access Control attacks
৩। Business Logic Access Control Attacks

Vertical Access Control Attacks

একজন স্টেন্ডার্ড ইউজার যখন তার উপরের লেভেলের একটিভিটি বাস্তবায়নের চেষ্টা করে তখন তাকে Vertical Access Control এটাক বলা হয়।

Horizontal Access Control attacks

ইউজার যখন তার লেভেলের অন্য একজন ইউজারের একটিভিটি বাস্তবায়নের চেষ্টা করে তখন তাকে Horizontal Access Control এটাক বলে। একজন ইউজার অন্য একজন ইউজারের পার্সোনাল ইনফরমেশন পরিবর্তন করা Horizontal Access Control attacks এর উদাহরণ।

Business Logic Access Control Attacks

যখন সিস্টেমের ডিজাইনে কোন সমস্যা থাকে তখন তাকে বিজনেস লজিক এক্সেস কন্টোল বলে। মনে করেন, আপনার স্বাস্থ্য রিলেটেড ফোরামে যে কেউ পোস্ট করতে পারে এবং সেই পোস্টগুলো আপনি চেক করার পর পাবলিশ হয়। আপনার ফোরামে পোস্ট পাবলিশ হবার পর পাবলিশার তা ইডিট করে পোনরায় পাবলিশ করতে পারে এবং এ জন্যে কোন ধরণের ভেলিডেশনের প্রয়োজন হয় না। তাহলে, কোন পাবলিশার আর্টিকেল পাবলিশ হবার পর, অনাকাংকিত কোন ইনফরমেশন দিয়ে তা পুনরায় আপডেট করতে পারে। এখন পাবলিশার চাইলেই অফ টপিকের লিখা বসাই দিতে পারে। যা সম্ভব হচ্ছে বিজনেস লজিকে ত্রুটির কারণে। এই ধরণের এটাককে বলা হয় Business Logic Access Control এটাক।

কিভাবে এপ্লিকেশন লেভেলে Access Control ব্যাক করা হয়?

আপনি যখন কোন এপ্লিকেশন ডেভলাপ করবেন তখন নিশ্চয়ই বিভিন্ন লেভেলের ইউজার তৈরি করবেন এবং তার ইউজার ইন্টারফেসে সেই কাজগুলো করার ইলিমেন্টই রাখবেন। একটি ওয়েব এপ্লিকেশনের কথা চিন্তা করেন। যেখানে কোন প্রোডাক্ট ডিলিট করার রিকিয়েস্টটি অনেকটা এরকম,
delete.aspx?id=1&type=product
যা সেলসমেন এবং ম্যানেজারের ইউজার ইন্টারফেসে লিংক করা রয়েছে। অন্যথায় সেলসম্যান ডিলিট করার রিকুয়েস্টটা অনেকটা এরকম,
delete.aspx?id=1&type=salesman
যা শুধুমাত্র ম্যানেজারের ইউজার ইন্টারফেসে রয়েছে। এখন কোন সেলসম্যান ম্যানুয়ালি এই রিকুয়েস্ট প্রদান করে তাহলে সিস্টেম সেই সেলসম্যান ডিলিট করে দিবে কেননা সেটি শুধুমাত্র ম্যানেজারের ইন্টারফেসেই রয়েছে এবং সিস্টেম সেটাকে একটি ভ্যালিড রিকুয়েস্ট হিসেবে কাউন্ট করবে। যার মাধ্যমে এপ্লিকেশনের সিস্টেম/ফ্লো নষ্ট করা সম্ভব।

এপ্লিকেশন লেভেলে Accesss Control করার নিয়ম

এপ্লিকেশন লেভেলে Access Control করতে হলে অবশ্যই প্রতিটি রিকুয়েস্টকে চেক করতে হবে এবং যদি ভ্যালিড রিকুয়েস্ট হয় তা বাস্তবায়ন হবে অন্যথায় তা কেন্সেল করে দিতে হবে।
এর জন্যে ইউজারকে সেশনে রেখে দিতে পারেন এবং সেই ইউজারের এক্সেস চেক করে দেখতে পারেন। এর সুডো কোড অনেকটা এমন হবে,

function deleteUser(User u){
if(CurrentUser.isManager())
u.Delete();
}

এছাড়া আরও কিছু ভাল অভ্যাসের মধ্যে রয়েছে,
১। শুধুমাত্র Javascript ভেলিডেশনের উপর নির্ভর না করা।
২। রিকুয়েস্টের মধ্যে এক্সেস লেভেল ডিফাইন করা থেকে বিরত থাকুন। কেননা রিকুয়েস্ট ম্যানুয়ালি পরিবর্তন করা সম্ভব।
৩। হিডেন ফিল্ড, কুকি, ফর্ম প্যারামিটার, ইউ আর এল প্যারামিটার এর উপর ডেপেন্ড করে ভেলিডেশন করা থেকে বিরত থাকুন। এই ফিল্ডগুলোর ডাটা ইনপেক্ট এলিমেন্টের মাধ্যমে পরিবর্তন সম্ভব।

সবচেয়ে উত্তম পন্তা হল, ডিজাইন লেভেলে এবং ডাটাবেস লেভেলে Access Control করা। উদাহরণসহ বিজনেস লেভেল এবং ডাটাবেস লেভেলে এক্সেস কন্ট্রোল নিই আরও একটি আর্টিকেল লিখার ইচ্ছে আছে। সে পর্যন্ত ভাল থাকুন। ধন্যবাদ।

, , , , ,

বিলাই প্রেমীদের জন্যে উইন্ডোজ ফোন এপস

আপনি যেহেতু আর্টিকেলটি পড়ছেন তাই আমি ধরে নিলাম আপনি একজন বিড়াল প্রেমীক কিংবা প্রেমীকা। যেহেতু আপনি বিড়াল পছন্দ করেন সেহেতু নিঃসন্দেহে বলা যায় আপনি আপনার প্রিয় উইন্ডোজ ফোনে বিড়ালের ছবি রাখতে পছন্দ করবেন। আমিও একজন বিড়াল প্রেমীক এবং সেই কারণেই তৈরী করা Cats LockscreenCa এপসটি।
এপসটিতে এই মুহূর্তে তেমন কিছু না থাকলেও একজন বিড়ালপ্রেমীকে সন্তুষ্ট করার মত অসাধারণ কিছু ছবির সংগ্রহশালা থাকছে এতে। যা আপনি সহজেই শুধুমাত্র একটি ক্লিকের মাধ্যমে আপনার প্রিয় উইন্ডোজ ফোনের লক স্ক্রিন হিসেবে চিহ্নিত করতে পারবেন।
কিন্তু এপসটি থেকে যতেষ্ট পরিমাণ সারা পেলে পরবর্তিতে আপনার প্রিয় বিলাই এর ছবি এপসে পাবলিশ করার সুযোগ রাখার ইচ্ছা রয়েছে।
উল্লেখ্য, এপসটি ব্যবহারের জন্যে ডাটা কানেকশন অন রাখার প্রয়োজন হবে কিন্তু ভয় পাবার কিছু নেই, প্রতিবার এপসটি আপনার ডাটা কানেকশন ব্যবহার করবে না। যখন কোন ছবি লোড হয়ে যাবে তা পরবর্তিতে কোন ডাটা কানেকশন ছাড়াই আপনি দেখতে পাবেন।
Cats Lockscreen এপসটি ব্যবহার করা যাবে উইন্ডোজ ফোন ৮, উইন্ডোজ ফোন ৮.১ এবং উইন্ডোজ ১০ মোবাইলে। নিম্নে এপসটির কিছু ছবি তোলে ধরা হল।
124

4-full5

বিলাই প্রেমী হলে এপসটি বিনামূল্যে ডাউনলোড করতে পারেন এবং পছন্দ হলে আশা করি ভাল রিভিউ দিবেন। ধন্যবাদ।

ডাউনলোড লিংকঃ http://www.windowsphone.com/s?appid=20ece240-74f5-45fe-8062-e920ee3ea8cd

, , ,

উইন্ডোজ ১০ এর মোবাইল এক্সপিরেন্স – ২য় আপডেট

অনেকেই উইন্ডোজ ১০ নিয়ে আগ্রহ প্রকাশ করছেন, অনেকেই আপনার প্রিয় উইন্ডোজ ফোনে ১০ ইন্সটল করেছেন।
অতঃপর অনেকেই মাক্রোসফটকে গালাগালি করছেন কিংবা নতুন সিস্টেমকে উপভোগ করছেন।

যাদেরে কাছে উইন্ডোজ ১০ কে বিরক্তের কারণ মনে হচ্ছে এবং যারা নতুন করে উইন্ডোজ ১০ সেটাপ দিতে চাচ্ছেন তাদের উদ্দেশ্যে বলব,

১. বর্তমানে যেই ভার্সন পাবেন তা পরিপূর্ণ ভার্সন না। এই ভার্সন থেকে আপনি পরিপূর্ণ উইন্ডোজ ১০ এর এক্সপিরেন্স পাবেন না। আর এই ভার্সন পরিপূর্ণ হবে ইনসাইডার দের ফিডব্যাকের মাধ্যমে।
২. ইনসাইডার ভার্সণে আপনি অনেক সমস্যার সম্মুখীন হবেন কিংবা হতে পারেন। তাই যদি সমস্যা ফেইস করতে কোন সমস্যা না হয় তাহলে ইনসাইডার হিসেবে নিজেকে নিবন্ধন করতে পারেন।
৩. আপনি যদি লিমিটেড ইন্টারনেট ইউজার হয়ে থাকেন তাহলে উইন্ডোজ ১০ এর ইনসাইডার হিসেবে নিজেকে নিবন্ধন করা অনেকটা বোকামী হবে। কেননা উইন্ডোজ ১০ এ নিয়মিত ফিডব্যাক পাঠাবে আপনার অজান্তেই।
৪. হার্ড রিসিট না দিয়ে আপনি ভাল ফিডব্যাক পাবেন না। তাই হার্ড রিসিটের ব্যাপারে কোন সমস্যা থাকলে ইনসাইডার হিসেবে নিবন্ধন করা থেকে বিরত থাকুন।
৫. আপনি যদি নিজেকে ট্যাকনিকালী নিজেকে দক্ষ মনে করেন কেবল তাহলেই ইনসাইডার হিসেবে নিজেকে নিবন্ধন করুন।

আমি উইন্ডোজ ইনসাইডার হিসেবে এই আর্টিকেলটি লিখার পূর্বমুহুর্ত পর্যন্ত ৩ টি ট্যাকনিকাল আপডেট পেয়েছি। প্রথম আপডেট অনেক সমালোচনার সৃষ্টি করেছিল, কেননা আপডেটের পর নেটওয়ার্ক সম্পূর্ণভাবে অচল হয়ে পড়েছিল অতঃপর হার্ড রিসিটের পর সমস্যার সমাধান হলেও সব কিছুই স্লো হয়ে যাবার সমস্যার সমাধান হয় নাই।
প্রথম আপডেটের কিছুদিন পরেই আসে দ্বীতিয় আপডেট, এই আপডেটে তেমন পরিবর্তন আসে নাই। শুধুমাত্র নেটওয়ার্ক জনিত সমস্যার সমাধান হয় দ্বীতিয় আপডেটে। এছাড়া কিছু এপস কাজ করতেছিল না, যা দ্বীতিয় আপডেটে সমাধান হয়।
এবং ২ দিন আগে তৃতীয় আপডেট সম্পন্ন করার পর উইন্ডোজ ১০ কে অনেক স্টেবল একটি অপারেটিং সিস্টেম মনে হচ্ছে। তৃতীয় আপডেটে ডিজাইনে কিছুটা পরিবর্তন আসে। ফোনের কালারে ভিন্নতা নিয়ে আসার সুযোগ আসে। পূর্বের তুলনায় গতি অনেক ভাল। কিন্তু স্টার্ট স্ক্রিনের গতি এখনও ঠিক আগের মতই রয়েছে। কিন্তু সব মিলিয়ে তৃতীয় আপডেটে আই এম হ্যাপী। 🙂

উইন্ডোজ ১০ এর মোবাইল ভার্সনের ফাইনাল রিলিজ কবে আসবে তা নিয়ে এখনও কোন ধরণের বার্তা না আসলেও ধারণা করা যাচ্ছে এই বছরের শেষের দিকে সাধারণ উইজাররা উইন্ডোজ ১০ এর স্বাদ উপভোগ করতে পারবে। আপনি যদি নিজেকে টেক ইলিট মনে করেন এবং উইন্ডোজ ১০ এর জন্যে আর অপেক্ষা করতে না পারেন তাহলে আজই ইন্সাইডার হিসেবে নিবন্ধন করুন। উল্লেখ্য, উইন্ডোজ ১০ দেওয়ার পর অবশ্যই হার্ড রিসিট করে নিবেন।

, , ,

How to change Assembly Name of Windows Phone Project

May be you have facing problem on publishing you Windows Phone 8 apps on windows store. Or you want to change the assembly name for any reason. And you have tried to change assembly name from application’s properties but unfortunately you got an null reference error. So lets see how to change the assembly name of windows phone project.
Step 1
Go to Project menu and select properties of you project.
change-assembly1
Step 2
Now the properties of your project will be opened. And here you find the Assembly name of your project and just type the new assembly on the text box and save it.
change-assembly2
Step 3
Now delete bin and debug folder from your solution or clean the solution first from Build menu and then rebuild the solution.
change-assembly3

Null Reference Error after changing Assembly

If you got null reference after changing the assembly name then may be you missed to clean the solution. So clean the solution and rebuild it. And try to lunch. If you still now facing any problem then contact with me. Thanks

,

কিভাবে উইন্ডোজ ১০ সর্বকালের সেরা অপারেটিং সিস্টেম হতে যাচ্ছে

কথাটি শুনলে অনেকটা কথার কথা মনে হলেও এটাই সত্য। খুব শীঘ্রই উইন্ডজ ১০ সর্বকালের সেরা এপ্লিকেশন হতে যাচ্ছে। অনেকেই Build 2015 ইভেন্ট সম্পর্কে জানেন আবার অনেকেই জানেন না।

Build 2015

তাহলে প্রথমে Build 2015 নিয়ে শুরু করি, Build হল মাইক্রসফটের অন্যতম একটা বাষিক সম্মেলন। এই সম্মেলনটা সাারণত তিন দিন ব্যাপী হয়ে থাকে এবং এই ইভেন্টের মাধ্যমে মাইক্রোসফট তাদের আপকামিং ফিচার উন্মুক্ত করে।
Build 2014 এ মাইক্রোসফট উইনিভার্সেল এপস এর সাথে পৃথীবিকে পরিচিত করেছিল এবং সেই সাথে পরিচিত করেছিল HoloLens এর সাথে। HoloLens নিয়ে অন্যদিন কথা বলব। আপাতত HoloLens সম্পর্কে বলব, HoloLens হল পরবর্তি বিশ্বের টেকনোলজি।

উইন্ডোজ ১০

আপনারা অনেকেই উইন্ডোজ ১০ ব্যবহার করছেন কিংবা উইন্ডোজ ১০ সম্পর্কে শোনেছেন। উইন্ডোজ ১০ এর উদ্দেশ্য হল, মোবাইল, ট্যাবলেট এবং পিসি উইজারদেরকে একই এক্সপিরেন্স দেওয়া। অর্থাৎ আপনি কী ব্যবহার করছেন এটা উইন্ডোজ ১০ এর ক্ষেত্রে কোন বিষয় না, আপনি প্রতিটি প্লাটফর্মে একই এক্সপিরেন্স পাবেন এবং একজন ডেভলাপার সহজেই একই এপস বিভিন্ন প্লাটফর্মের জন্যে ডেভলাপ করতে পারবে।

উইন্ডোজ ১০ সর্বকালের সেরা অপারেটিং সিস্টেম

অনেক হল, এখন কিভাবে উইন্ডোজ সর্বকালের সেরা অপারেটিং সিস্টেম হবে তা বিষয়ে কিছু বলা যাক। পিসির ক্ষেত্রে উইন্ডোজ বর্তমানে সেরা হিসেবেই অবস্থান করলেও স্মার্ট ফোনের ক্ষেত্রে অনেকটা পিছিয়ে পড়েছে শুধুমাত্র এপস এর স্বল্পতার কারণে। অর্থাৎ এই এপস স্বল্পতার সমাধান হলেই উইন্ডোজের সকল প্রতিকুলতার সমাধান হবে। এই সমস্যার সমাধানের জন্যে মাইক্রোসফট এন্ডয়েড এপস উইন্ডোজে রান করার চিন্তা করলেও বর্তমানে তার চেয়েও ভাল কিছু নিয়ে এসেছে এবং তা হল, এন্ড্রয়েড এবং iOS ডেভলাপাররা তাদের এপসগুলোকে কোন রকম পরিবর্তন ছাড়াই উইন্ডোজ প্লাটফর্মের জন্যে কম্পাইল করতে পারবেন এবং উইন্ডোজ স্টোরে নিয়ে আসতে পারবেন।
এর ফলে যা হবে তা হল, এন্ড্রয়েডের এপসগুলো উইন্ডোজ স্টোরে আসবে কিন্তু এন্ড্রয়েডের ভাইরাস জগত থেকে উইন্ডোজ থাকবে সুরক্ষিত। সেই সাথে iOS এর এপগুলোও উইন্ডোজ স্টোরে আসবে। অর্থাৎ স্মার্ট ফোনের এপসের জগত থাকবে আপনার হাতে।
উইন্ডজের আরো একটি চমৎকার ফিচার হল, Cortona । Corotna এর পাওয়ার ফুটবল বিশ্বকাপেই উন্মুক্ত হয়েছে, এবং উইন্ডোজে ১০ এ Cortona হবে আরো ইন্টার একটিভ এবং আরো শক্তিশালী। এই ফিচারগুলোর জন্যে মাইক্রোসফট আশাবাদী যে, আগামী ৩ বছরের মধ্যে উইন্ডোজ ইউজারের সংখ্যা আরো ১ বিলিয়ন বাড়বে।

অর্থাৎ, এটি সহজেই বলা যায়, খুব শীঘ্রই উইন্ডোজ ১০ হতে যাচ্ছে সর্বকালের সেরা অপারেটিং সিস্টেম।

, ,

How to change the Pivot Item Header Foreground Color in Windows Phone

Basically in Windows Phone the default foreground color of Pivot Item header is bonded with Phone Text Color. Basically you will face problem when you try to use any design or color pattern as the background of Pivot Item Header. You can solve this problem with Blend or Hard Coding. I have searched a lot for solving this issue with Blend but unfortunatly none of them working good. So let’s take change the foreground color of Pivot Item Header.

First of all open App.xaml and add those lines code inside the block of


        
        

First one is the selected item’s foreground color and second one is the un-selected or un-focused text color. You can customize it as you want. Here you are able to use any color name or any custom color code.

Beside this you also can define the text size of those Pivot Header. For that just add the line below.

40

That’s all about changing foreground color of Pivot Header. I will blogged another post when I have found the way of changing color in blend.

Happy Coding…
Thank you

, , , , ,

প্রথম সেমিস্টার কম্পিউটার বিজ্ঞানের শীক্ষার্ত্রীদের জন্যে সবচেয়ে গুরত্বপূর্ণ অধ্যায়

শীরোনাম পড়ে বিশ্মিত হবার কিছু নেই। এমনটি ভাবারো কিছু নেই যে, শুরুটাই যদি সবচেয়ে গুরত্বপূর্ণ হয় তাহলে শেষটা কী?
হয়তবা প্রথম সেমিস্টারে কোন প্রোগ্রামিং ল্যাংগুয়েজ সম্পর্কেও আপনাকে ধারণা দেওয়া হবে না। ধারণা দেওয়া হবে না, কম্পিউটার আর্কিটেকচার, ডাটাবেজ কিংবা সফটওয়্যার ডেভলাপমেন্ট অথবা অভ্যন্তরীণ বিষয়াদী সম্পর্কে। তারপরো প্রথম সেমিস্টারী নির্ধারণ করে দেয় পরবর্তি সেমিস্টারগুলোতে আপনার পারফরমেন্স কেমন হবে।
সাধারণত তিন ধরনের শীক্ষার্ত্রীদের প্রথম সেমিস্টারের ক্লাসরুমে পাওয়া যায়। তাদের মধ্যে রয়েছেঃ
যাদের কম্পিউটার সম্পর্কে বিন্দু পরিমাণ ধারণা নেই।(নির্মম বাস্তবতা হল, এই ধরণের শিক্ষার্ত্রীদের সংখ্যাই সব চেয়ে বেশী)
কম্পিউটার একটি গনণাকারী যন্ত্র এই ধারণা নিয়েও অনেকে কম্পিউটার বিজ্ঞানের প্রথম ক্লাসটিতে জয়েন করে। কিন্তু কম্পিউটার বিষয়ে যথেষ্ট পরিমাণ ধারণা রয়েছে এমন শীক্ষার্ত্রীর সংখ্যাও কম নয়। আর সেই জিনিসটাই প্রথম এবং দ্বিতীয় শ্রেণীর শীক্ষার্ত্রীদের জন্যে কাল হয়ে ধারায়। “সে সব কিছু পারে, আর এই দিকে আমি কিছুই পারি না। এবং আমাকে দিয়ে কিছু হবে না।” এই ধারণাটি তাদের মধ্যে কাজ করা শুরু করে।
আপনি কিছুই পারেন না সেটা আপনার ভুল নয়। কেননা শিখার জন্যেই এসেছেন কিন্তু আপনাকে দিয়ে কিছু হবে না সেটাই হল একমাত্র এবং অন্যতম ভুল।
ঠিক যেই মুহুর্ত পর্যন্ত এই ধারণার বাহিরে আসতে পারবেন না, ঐ মূর্হুর্ত পর্যন্ত আপনার ভবিষ্যৎ অন্ধকার কিংবা অন্ধকারআচ্ছন্নই রয়ে যাবে। আর প্রথম সেমিস্টারই হল এই ধারণা থেকে বের হয়ে আশার সব চেয়ে উত্তম সময়। প্রথম সেমিস্টারে আপনাকে অল্প কিছু জিনিস শিখতে হবে এবং কিছু ধারণা থেকে নিজেকে বের করে দিতে হবে। আর ভয় জিনিসকে দূর করে জয় করার স্বপ্ন দেখতে হবে। এই ভয়টি হল না পারার ভয়। যা প্রথম সেমিস্টারের অধিকাংশ শিক্ষার্ত্রীদের মধ্যেই দেখা যায়।
আপনি ভার্সিটিতে চার বছর মেয়াদী কম্পিউটার বিজ্ঞান কোর্সে ভর্তি হয়ে ভেবেই নিয়েছেন, কিভাবে বিশাল বিশাল সফটওয়্যার তৈরী করতে হয় ভার্সিটি আপনাকে শিখিয়ে দিবে। নির্মম সত্য হল আপনার অনেকগুলো ভুল ধারণার মধ্যে উল্লেখযোগ্য হল এই ধারণাটি। বাস্তবতা হল, ভার্সিটি আপনাকে শুধুমাত্র দিক-নির্দেশনা দিতে পারবে এবং পরবর্তী কাজ আপনাকেই করে নিতে হবে। অর্থাৎ নিজে নিজে কাজ শিখার মানসকতা প্রথম সেমিস্টার থেকেই তৈরী করুন।
অতঃপর একদল ছাত্র/ছাত্রী বইয়ের প্রতিটি পৃষ্ঠা মুখস্ত করার কাজে নেমে পরে, কেননা সবার ভিতর একটি ধারণা তৈরী হয়ে আছে আর তা হল, ভাল রেজাল্ট, ভাল ফিউচার। এই ধারণাটি অনেক ক্ষেত্রে ভুল এবং অনেক ক্ষেত্রে সত্য। ভাল রেজাল্ট ছাড়া আপনি অনেক কম্পানিতে সাড়া পাবেন না কিন্তু বাস্তবিক জীবনের কাজে নিজেকে মনোনিবেশ করতে না পারলে, বিভিন্ন কম্পানি থেকে সাড়া পাওয়া সর্তেও জব আপনার হবে না। এমনকি নিজে কাজ করে জীবন যাপন অর্থাৎ ফ্রিল্যাস্নিং করার স্বপ্নও আপনার নিকট স্বপ্নই রয়ে যাবে। তাই বলা যায় সব চেয়ে জরুরী জ্ঞান অর্জন করা এবং এর পাশাপাশী ভাল রেজাল্ট।
আপনিও যদি আমার মত ফ্রীল্যান্সার হয়ে লাখ টাকা ইনকাম করার স্বপ্ন নিয়ে কম্পিউটার বিজ্ঞানে শিক্ষানুবাস শুরু করেন তাহলে প্রথমেই জেনে রাখুন একটি বিশাল জগত আপনার অজানা রয়েছে এবং আপনি নিশ্চই জানেন, ফ্রীল্যান্সিং করতে কোন রকম প্রতিষ্ঠানিক শিক্ষাগত যোগ্যতার প্রয়োজন হয় না। কিন্তু যেহেতু আপনার কারীগরি দক্ষতার পাশাপাশি ৪ বছর মেয়াদী শিক্ষাগত যোগ্যতা রয়েছে তাই আপনার স্বপ্ন আরো একটু উপরে থাকা দরকার। পৃথিবীর বিশাল বিশাল কম্পানীগুলো আপনার জন্যেই অপেক্ষা করছে। এর পাশাপাশী আপনিও হতে পারেন এই রকম একটি কম্পানির প্রতিষ্ঠাতা। পুনঃরায় বলছি স্বপ্ন দেখতে হবে।

উপদেশ বাণী শুনে বিরক্ত হয়ে পড়লে কিছুক্ষণ বিশ্রাম নিন। সম্ভব হলে চা, কফি কিংবা একগ্লাস পানি পান করুন।

অতঃপর প্রথম সেমিস্টারে আপনাকে যা শিখতে হবে, তার ধরা বাদা কোন নিয়ম না থাকলেও আমার ব্যাক্তিগত মতামত, নিজেকে এমন একটি পর্যায়ে নিয়ে যাবার চেষ্টা করুন যেখান থেকে আপনি কিম্পিউটার বিজ্ঞানের ছাত্র হিসেবে নিজের এবং অন্য বিভাগে অধ্যায়নরত কোন শিক্ষার্তীর মধ্যে যতেষ্ট পরিমাণ পার্থক্ খুজে পান। তার জন্যে প্রথমেই ওয়ার্ড প্রসেসিং, স্প্রেডশীট নিয়ে সাধারণ কাজ করা থেকে শুরু করে নিজের প্রোয়োজনে ছোট খাট ডাটাবেজ তৈরী করা সম্পর্কে ধারণা গ্রহন করুন এছাড়া বাধ্যতামূলকভাবে আপনাকে প্রেজেন্টেশন তৈরী করা শিখতে হবে।
উল্লেখিত পর্যায়ে উত্তির্ণ হবার পর আরো একটু গভীরে যাবার চিন্তা করুন, নিজের কিম্পিউটারের সমস্যাগুলো নিজেই সমাধানের চেষ্টা করুন। ফেইসবুক কিংবা ভিবিন্ন সামাজিক সাইটে ছবি আপলোড করার পুর্বে ইডিটিং সফটওয়্যার হিসেবে পিকাসা কিংবা এই জাতীয় সফটওয়্যারগুলো ব্যবহার না করে ফটোশপে কাজ করার অভ্যাস গড়ে তুলোন। এতে করে ভবিষ্যতে বিভিন্ন সামান্য কাজের জন্যে অন্যের নিকটস্ত হতে হবে না।

এই ছোট-খাট বিষয়গুলো অনেকের কাছেই তুচ্ছ তাচ্ছিল মনে হবে, হয়ত আপনার শিক্ষা পরবর্তি জীবনে এই বিষয়গুলো সামান্যই সহযোগীতা করবে কিন্তু এর ফলে কম্পিউটারের প্রতি, কম্পিউটার প্রযুক্তির প্রতি আপনার আগ্রহ তৈরী হবে এবং প্রথম সেমিস্টারে অধ্যায়নরত প্রত্যেকের জন্যে এই জিনিসটিই সবচেয়ে বেশী প্রয়োজনীয়।

আপনার সিলেবাস আর বড় করব না। কিন্তু আমি বলছি না, এখানেই তেমে যেতে হবে। এই পর্যায়ে এসে আপনি উল্লেখিত তৃতীয় শ্রেণীতে অবস্থানরত শীক্ষার্তীদের সাথে তাল মিলিয়ে চলার মত মানসিকতা তৈরী হবে।

এবং যাদের বিভিন্ন কাজ সম্পর্কে মোটামুটি ভাল ধারণা রয়েছে তাদেরকে লক্ষ্য করে বলব, নিজের ইচ্ছে মত প্রযুক্তি আহরণে ব্যস্ত থাকেন। কিন্তু “অল্প বিদ্যা ভয়ংকর” এই বিষয়টির প্রতি নজর রাখুন।

ধন্যবাদ

, ,

Passing multiple parameters to a new page in Windows Phone

OnBackKeyPress Event in Windows Phone 8.1
Silverlight

Passing Multiple Parameter in Windows Phone Silverlight Application

In Silverlight application you can pass multiple parameter easily. For that you have to use NavigationService class. Here is the sample of passing multiple parameters in Windows Phone Silverlight app.

NavigationService.Navigate(new Uri("/SecondPage.xaml?msg1=" + textBox1.Text+”?msg2=”+txtBox2.Text, UriKind.Relative));

And to retrieve this value on the SecondPage you have to override OnNavigatedTo method. This is a sample of overridden OnNavigatedTo method.

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
     base.OnNavigatedTo(e);
     string msg1 = "";
     string msg2 = "";
     if (NavigationContext.QueryString.TryGetValue("msg1", out msg1))
          textBlock1.Text = msg1;
     if (NavigationContext.QueryString.TryGetValue("msg2", out msg2))
          textBlock2.Text = msg2;
}

Passing Multiple Parameter in Windows Phone 8.1 RT and Windows Store apps

First of all there is no way to pass multiple parameter in windows phone rt. But in Windows RT you can pass any kind of object. So to full fill your demand, you can follow several ways. First of all, if you want to pass string type or any same type of multiple parameter, you can use list of that type variable. Here is a sample of passing multiple string.

var myList = new List()
{
     textBlock1.Text,
     textBlock2.Text,
     textBlock3.Text,
}
Frame.Navigate(typeof(Page2), myList);

To grab those variable on your new page you have to work on OnNavigatedTo method. This is a sample code.

protected override void OnNavigatedTo(NavigationEventArgs e)
{
     var myList= e.Parameter as List;
}

But if you want to pass different kind of object then you have to create a new class. And pass the object of that type of class. Here is a sample.

public class MyCustomObject
{
     public int ID{ get; set; }
     public string Name { get; set; }
}

This is the sample of custom object. To pass an object MyCustomObject type you can follow the code of below.

MyCustomObject sample = new MyCustomObject();
sample.ID = 1;
sample.Name = "fagun rain";
Frame.Navigate(typeof(Page2), sample);

And get this object in your new page using the code of below.

protected override void OnNavigatedTo(NavigationEventArgs e)
{
var parameter = e.Parameter as MyCustomObject;
}
, , , ,

OnBackKeyPress Event in Windows Phone 8.1

Silverlight
OnBackKeyPress Event in Windows Phone 8.1

So you are moving to windows phone 8.1 RT development from classic Windows Phone Silverlight. This is really a very good decision for you. But I know you will face a little bit problem. I have also faced a lot of problems. And today noticed that, when I tapped on Back Button hardware, it automatically closed my app and lunch the home screen. I think you also faced something like this. After that I have tried to override OnBackKeyPress event and unfortunately found that there is no event something like OnBackKeyPress.

Back Button Hardware press event in Windows Phone 8.1

So how to implement OnBackKeyPress event on windows phone 8.1? First of all note that, there is no option to override this one from your XAML. And you have to override this using += operator from the constructor.
Just write down HardwareButtons.BackPressed+= and press double tab to implement the event automatically. After that a new event will be generated and that is something like this one.

void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
e.Handled = true;
Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
// Navigate to a page
}

Now add your custom code after
Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
And you are done! Thank you.

, ,

Contact

Please don’t hesitate to contact me for more information about my work.

Email: mdabuzaforfagun@gmail.com
Phone: 8801677813190

No more, where are you going?

Go back to top or use the menu to your left to navigate.

Thanks for downloading!

Top