PultusORM : Sqlite ORM for Kotlin

PultusORM : Sqlite ORM for Kotlin

Few days back I was developing a Kotlin desktop application and needed a database system like Sqlite to store data. I started searching on google & github for a Sqlite ORM library and after spending few hours I figure out some library but no one fulfil my requirements. So I decide to write one by myself. As I am too lazy so I tried to develop something easier and straightforward. I don’t want the developer to write some queries and use the ORM system. So I develop the library keep in mind that not only me but everyone needs something easy, something more handy, something more flexible which will do everything. Ok I have started writing PultusORM a sqlite ORM library for Kotlin.

Java : MongoDB Full Text Search

MongoDB তে Search efficient করার জন্য key field এর উপর indexing করতে হয়, যদিও default ভাবে _id (ObjectId) এর উপর বেস করে Indexing করা থাকে । কিন্তু যদি আপনি টেক্সট সার্চ করতে চান তবে তার জন্য আলাদা ভাবে ইনডেক্স করতে হবে । এখানে সেইটা কিভাবে করে তা দেখব ।
আপনি একটা, কয়েকটা বা Wildcard indexing করতে পারেন, তবে টেক্সট ইনডেক্স কোণ ভাবেই একের বেশি হতে পারবে না কিন্তু একাধিক field এর উপর হতে পারে ।
ধরি ডাটাবেসে profiles নামে একটা কালেকশন আছে সেইটায় আমরা ইন্ডেক্সিং করব ।

db.collectionName.createIndex("fieldName", "text");

( first-name field ধরে ইনডেক্স করা হয়েছে )

Memories From My Mother - 1

Memories From My Mother - 1

তখন আমি আর সৌরভ ছোট । প্রতিদিন বিকেলে ঘুমানো লাগতো । কিন্তু ঘুমানো তো যাবে না । তো কি করতাম দুপুরে তাড়াতাড়ি খাওয়া দাওয়া করে শুয়ে পরতাম । আম্মা ভাবত আমরা ঘুমায় গেছি , আম্মা ও গিয়ে ঘুমায় যাইত । ঠিক তখন আমরা দুইজন উঠতাম । একা তো চেয়ার তুলতে পারতাম না , দুজন মিলে চেয়ার তুলে দরজার কাছে নিয়ে আসতাম । এরপর আমি চেয়ারে দাড়ায় দরজা খুলতাম আর সৌরভ দেখত আম্মা আবার ঘুম থেকে উঠে যায় কিনা । তো দরজা খোলার পর বের হয়ে দরজা চাপায় রাখতাম যাতে খুলে না যায় । আর আমাদের দুই ভাইর দুইটা কোলবালিশ ছিল ,

C++ : JSON Processing

আপনার প্রিয় আইডিই ওপেন করে তৈরি হয়ে যান । আমি এখানে অ্যাপকোড ব্যবহার করব ।
এখানে জেসন প্রসেসিং এর জন্য যে লাইব্রেরী ব্যবহার করবো সেটি পাওয়া যাবে এখানে
ইন্সটল করার পদ্ধতি একদমই সিম্পেল json.hh নামে একটি ফাইল পাবেন সেটি আপনার সোর্স ফোল্ডারে অ্যাড করুন ।

Java : GUI Development - A

জাভাতে GUI এর কাজ করার জন্য AWT এবং Swing Framework ব্যবহার করতে হয় , যেটা জাভাতে Build In দেওয়া আছে । তো শুরু করা যাক ।
GUI Window বানানোর জন্য আছে JFrame যেটা Window create করে দিবে এবং আমরা তাতে দরকার মত Component ( Text, Image etc ) add করতে পারবো । তো আমরা নিচের ছবির মত বানাবো । যেখানে একটা Textarea থাকবে Text ইনপুট নেওয়ার জন্য । একটা Label থাকবে যেখানে Text show করবো , আর থাকবে একটা Button যেটাতে ক্লিক করলে কোণ একটা কাজ করবে । এখানে ইনপুট টেক্সট থেকে টেক্সট নিয়ে সেখানে কয়টা অক্ষর আছে তা Label এ দেখাবে ।




Java : Develop Scrapper using JSoup

আজকে দেখবো কিভাবে একটা ওয়েবসাইট Scrapper ডেভেলপ করা যায় জাভাতে । এই জন্য আমরা HTML Parsing এর জন্য JSoup লাইব্রেরী ব্যবহার করবো । এই টিউটোরিয়াল এ UIU এর ওয়েব সাইট থেকে নোটিশ গুলো পার্স করে নিয়ে আসার চেষ্টা করব । তো শুরু করা যাক ।

একটা হচ্ছে মূল URL যেটা ধরে আমরা পারসিং করব ঃ
http://www.uiu.ac.bd/?post_type=notice
এবার এই লিঙ্কে গিয়ে সেখান থেকে নোটিশের একটা প্যাটার্ন বের করার চেষ্টা করব যেটা ব্যবহার করে আমরা নোটিশ গুলো পার্স করব । লিঙ্কে গিয়ে View Page Source এ যান , দেখবেন সাইটটির HTML কোড দেখা যাচ্ছে । পেইজে নিচের দিকে যান দেকবেন ৩০২ নাম্বার লাইন থেকে <article> নামে একটা ট্যাগ শুরু হয়েছে যার মধ্যে নোটিশটি আছে এবং এই <article> ট্যাগ টা বারবার রিপিট হয়েছে ।



Flash Samsung J200H with prerooted stock room

গত কালকে হটাত কি মনে করে ভাবলাম সেটা ফ্যাক্টরি রিসেট দেই । যেই ভাবা সেই কাজ । দিলাম ফ্যাক্টরি রিসেট । সেট রিবুট নিয়া আর কাজ করে না -_- । আগে রুট করা নিয়া অনেক কাপজাপ করছিলাম , তারই ফল মনে হয় -_- । দেখি লাল রঙের "Recovery is not Seandroid Enforcing" লেখা আসে । মেজাজ গেলো খারাপ হয়ে । সারা রাত গুগলে গরু খোজা খোজার পর ভাবলাম Stock rom flash দেই । আবার একটা pre rooted firmware ও পায়া গেলাম । অনেকদিন ধইরা আবার সেটা রুট করব কিন্তু করতে পারতেছিলাম না । রিস্ক নিলাম হয় এক ঢিলে দুই পাখি মরবে নয়ত আম ছালা সব যাইবে । রাতে সব ডাউনলোড করতে করতেই রাত পার । গিয়া দিলাম ঘুম । সকালে অফিসে গিয়া তাসভির ভাইর ল্যাপটপ টা দখল করলাম । ওইটায় আগে থেকেই ড্রাইভার ট্রাইভার সেটআপ দেওয়া ছিল তাই ।
যা যা লাগবে ঃ
১। অডিন
২। সামসাং ফোনের ড্রাইভার
৩। ফার্মওয়ার [ Samsung J200H Rooted ]

Java PlayFramework add war support

Java Play web framework এ default ভাবে war ফাইল জেনারেট করার সুবিধা নেই । তবে খুব সহজেই আপনি তা করতে পারেন Play2War plugin এর মাধ্যমে ।
প্রথমে project এ Play2War plugin add করুন ।


এবার War ফাইল জেনারেট করার জন্য দরকারী অপশন গুলো সেট করুন ।

Openfire Plugin Development

ওপেন ফায়ার হচ্ছে ওপেনসোর্স এক্সএমপিপি ( XMPP ) সার্ভার । ওপেন ফায়ার জাভা ( Java ) ল্যাঙ্গুয়েজ এ লিখা । আপনি চাইলে এর জন্য প্রয়োজন অনুযায়ী প্লাগিন ডেভেলপ করতে পারেন । এর জন্য ওপেন ফায়ার এর গিটহাব লিঙ্ক থেকে  প্রজেক্ট টা ফরক করে নিন । ফরক করার পর আপনার যে রিপো হবে সেটি ক্লোন করুন পিসিতে । আমার ফরক লিঙ্ক



WebRTC Tutorial : Intro

WebRTC ( Web Real Time Communication ) হচ্ছে Browser 2 Browser Real Time Audio, Video , File sharing এর জন্য গুগলের ডেভেলপ করা একটা প্রোটকল । 

WebRTC Diagram

API Introduction

API এর পূর্ণরূপ হল Application Program Interface । তত্ত্বীয় কথা বার্তা না হলে কাজের কথায় আসি ।
ধরুন আপনি একটা সিস্টেম থেকে আর একটা সিস্টেমে ডাটা পাঠাতে / নিতে চান , সেক্ষেত্রে API ব্যবহার করতে পারেন । যেমন ধরুন Instagram application । এর Android, iOS version আছে । এই অ্যাপ কি করে আপনি কিছু পোস্ট দিলে তা তাদের সার্ভারে নিয়ে রাখে , আবার আপনার Follower রা যখন দেখে তখন সার্ভার থেকে এনে তাদের দেখানো হয় । এই কাজ গুলা যার মাধ্যমে করা হয় সেটাই হল API । আবার ধরুন Google এর Open Vision API এর একটা কাজ হল আপনি তাকে একটা ছবি দিলে সে তা ঘাটাঘাটি করে আপনাকে একটা ফলাফল দিবে । এই যে আপনি গুগল কে দিয়ে একটা কাজ করায় নিলে এর জন্য মাঝখানে যে মিডিয়াম টা কাজ করলো সেইটাই API । এখন হয়ত ভাবতেছেন হুড় এইটা তো তাইলে কিছু কোড আর প্রোটকল ছাড়া আর কিছুই না । জী ঠিক কথাই ভাই এইটা মঙ্গল গ্রহ বা এলিয়েন দের দিয়ে যাওয়া কোণ মিষ্টি মন্টা না । :3