Posts

Showing posts from 2018

Schedule Database backup in your cloud instance

Suppose you have a cloud instance and you’re afraid of loosing data anytime. So what do you do in that case? Backup your database regularly right? But it’s hard to backup manually every day. I’m going to set up a cron job to automatically backup your database. Let’s have a journey with me.
1. Create a local git repository
We’ll create a folder named backups on /var/www. It’ll be our local git repository for backup.
Initialize it with git init2. Create a backup git repository
Since our database isn’t so big yet, we’ll use a git repository to backup the database file for now. Create a git repository in any of your preferred git server. Suppose we create a git repository DatabaseBackupTest and url is [email protected]/DatabaseBackupTest.git cd to your local backup folder and set this url as remote. git remote add origin [email protected]/DatabaseBackupTest.git3. Create a bash script to backup your database
We have to create a bash script that we’ll run on daily or weekly basis to backup our dat…

পলিমরফিক ইন্টারফেরেন্স -> 1

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

প্রোগ্রামিং স্কিল ডেভেলপমেন্টঃ আমি যে পদ্মতি অনুসরন করি

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

Java 10 in 10 minutes. What is new?

People haven't yet adopted Java 9, and yet to adopt Java 8 too. But Java 10 is released already? How fast are we going? No enough I guess.]
We, Java programmers tend to adopt new featured pretty slow. Because we adore stability and robustness. When a new version of Java is released, it's much very stable and with a big change (Java 7 release wan't that big though)
But now, oracle has decided to follow a new Java release schedule. From now Java will be released in every six month cycle.

New Java Release Cycles
Let me review some previous Java release since Java 6
Java 6 (2006): 
Released in 2006. It was a Sun Microsystems release. Big changes was adding scripting apis.

Java 7 (2011):
First Oracle release in 2011. Not a bigrelease, considering Oracle took almost 5 years to release a new version.New was Bytecode for dynamic languages and some small changes in language features. Too bad oracle kind of neglected Java during that time.

Java 8 (2014):
Now we are talking. Java came b…

সফটওয়্যার ডেভেলপার হিসেবে জবের প্রস্তুতি

বাংলাদেশে সফটওয়্যার ডেভেলপার হিসেবে জবের মার্কেট ধরার জন্য ইমেডিয়েটলি কিছু বিষয়ে নজর দেয়া দরকার। 


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

Uploading files on filesystem spring boot

In this article, I'll show you a very simple way to upload and save your file in the filesystem rather than saving as a blob in the database.
It'll be a very flexible way to do that. We can provide a root path for a filesystem (aws or other service, or our servers file system) where it'll consider saving files.

1. Create a Pojo for keeping the file informationspublic class UploadProperties { private String namespace; private String uniqueProperty; private String rootPath; private String fileName; public enum NameSpaces{ USERS("users"), COMPANIES("companies"); String value; NameSpaces(String value){ this.value = value; } public String getValue() { return value; } } public String getDirPath() { if (namespace == null || namespace.isEmpty() || uniqueProperty == null || uniqueProperty.isEmpty() || rootPath …

জাভা বেসিক টু অ্যাডভান্সড প্রোগ্রামিং গাইডলাইন

জাভা প্রোগ্রামিং এর বেসিক শিখে অনেকে দ্বিধায় পড়ে যায়, এর পরে কি করা উচিত। কোথায় কোথায় আমার এই স্কিলটা কাজে লাগানো যাবে।
আমি প্রায় তিন বছর ধরে জাভায় কাজ করছি। প্রথম দিকে এরকম দ্বিধান্বিত আমি নিজেও ছিলাম। একটা প্রশ্নই মাথায় আসত সবসময়, What is it good for?
সহজ উত্তর হল, It’s good for everything!

এখন কাজের কথায় আসি। জাভা মূলত একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ। কন্সিডার ইট অ্যাজ এ টুল। যে টুলটা লজিক্যালি ব্যাবহার করে একজন প্রোগ্রামার তার প্রব্লেম সমাধান করবে। জাভার বেসিক কনসেপ্ট শেখা হয়ে গেছে? বেশ। প্রব্লেম সলভিং করে নিজের হাত পাকা করে নেয়াটা ভালো। এতে দুইটা উপকার হবে।

১। কোর ল্যাঙ্গুয়েজে হাত পাকা হবে।
২। লজ্যিক্যাল স্কিল ডেভেলপ হবে।

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

Implement password Reset feature for your java application

Grettings!

In this article I'll show you how you can implement a password reset feature in your java application.
You have to follow this {var} simple steps to implement this feature.

1. Create a model for validation token You can create a parent class ValidationToken that you can extend in any specific type of validation token class.


Extend it to AcValidationToken class that you are going to use for this purpose.

@MappedSuperclass public class ValidationToken extends BaseEntity { private String token; private boolean tokenValid; // getters and setters }
Extend it to AcValidationToken class that you are going to use for this purpose.

@Entity public class AcValidationToken extends ValidationToken{ @OneToOne private User user; private String reason; // getters and setters } Here we've created a @OneToOne relationship with user because we are going to reset password for that user.
2. Repository and Service for t…