I attended KDE India Conf (conf.kde.in, CKI) 2025 in Gandhinagar, Gujarat. My last and first CKI was in 2020 in Delhi. Had written a blog then. There was a CKI last year in Pune but I was unable to attend it. So it’s been 5 years. The constant from then and now is Bhushan :) My talk Title of the talk was “Learnings from creating an input method for KDE”. My primary desktop environment since 2018 is KDE Plasma. Varnam input method was created to use in KDE. The talk was about the learnin...| Subin's Blog
Recently been using ActiveRecord + SQLite a LOT, so making this post for the basic template. Gemfile source "https://rubygems.org" gem "activerecord", "~> 8.0" gem "pry" gem "sqlite3", "~> 2.4" playground.rb require 'active_record'require 'pry'require 'sqlite3'ActiveRecord::Base.establish_connection( adapter: 'sqlite3', database: 'db.sqlite3') classPlace<ActiveRecord::Baseend@first_run =!Place.table_exists? # Create the table (migration-like setup)if @first_run ActiveRecord::Schema.define do ...| Subin's Blog
Whenever I feel like it, I give talks at conferences and meetups. I like public speaking especially when it’s to showcase something that excites me. 2024 ActiveRecord + SQLite on WASM! (Video coming soon) RubyConf India, Jaipur, India Simple analysis on place names of Kerala (Video coming soon) State of The Map Kerala, Wayanad, India Learnings from creating an input method for GNU/Linux from a product perspective DebConf24, Busan, South Korea Mirror Making a semantic dictionary from 2001 Pa...| Subin's Blog
Update After this post was published, some people asked for some other suffixes to be analyzed. I’ve now made an interactive webpage to analyse place names in any way with SQL: Open Playground Intro I noticed something unique when I walked around in Kakkanad, some of the local place names ended with the word “മുഗൾ”. I haven’t heard of any other place having this suffix in Kerala before, so it was quite interesting to me. The curiosity instantly brewed in my mind, is this reall...| Subin's Blog
This is the story of solving a problem, making a dictionary book online. The dictionary Njattyela Sreedharan (ഞാറ്റ്യേല ശ്രീധരൻ) is an 85 year old person from Kannur, Kerala. Out of his interest for Dravidian languages, he spent 25 years in compiling a dictionary of four Dravidian languages - Malayalam, Kannada, Tamil, Telugu. The dictionary was originaly handwritten in a book of four columns. This was later published as a book by Senior Citizens Forum. This ne...| Subin's Blog
I have a VueJS app, I want to make the <title> and <meta> tags to be populated in page source itself for better SEO. I could use Server Side Rendering but it was difficult, express.js keeps crashing and there’s JavaScript inconsistencies (ES Module imports didn’t work in node). More explanation at the very bottom. To solve this problem, I did something wild. I made a Go server, served the JS app. On each request, the HTML file is processed by Go and title, meta tags are dynamically popula...| Subin's Blog
Some days ago, I came across Malayalam numerals and found it very interesting. Unlike Hindi or Kannada numerals, the numerical grammar of Malayalam was unique. It’s a direct fork of the Tamil numeric system. So, Tamil & Malayalam has this unique numeral system. It is no longer commonly used though. Like the rest of the world, we use Hindu-Arabic numeral system now. I had to include my phone number in a webpage recently for an event hosting and was concerned whether spammers would take hold ...| Subin's Blog
| Subin's Blog
If you’re using i3 window manager and you want the Picture in Picture (PiP) window of Firefox and Chromium to be seen in all workspaces, just add this to your i3 config file : for_window [title="Picture-in-Picture"] sticky enable This will work for both Firefox and Chromium/Chrome PiP. If it doesn’t work, open a video in Picture in Picture mode and run the command wmctrl -l in terminal which will produce a similar output : 0x0b800006 1 swift Screenshots - Dolphin 0x07e00005 2 swift Telegr...| Subin's Blog
This is certainly not an April Fool and doesn’t involve a rickroll. :P 😝 Introducing Indic-En, a browser extension to convert websites in Indian languages (Malayalam, Hindi, Kannada) to Manglish, Hinglish & Kanglish. This is the first WebExtension that I’ve made. This extension will be useful for people who can understand the language, but can’t read it (read the script). I’ve also made a similar Android app “Manglish” which does this, but only for the Malayalam language. Speci...| Subin's Blog
A global pandemic is going on and we’re all staying in our homes. College’s been closed for a week now. Yes, it gets boring staying in home all day. But, we must ! Out of boredom and a wish to cheer up people in my circle, I made a website which ends up rickrolling the visitor. It took me an hour to make it. If you’re reading this, you probably got rickrolled by me ;) 😉 In this post, I’m gonna talk about Social Engineering and the experience I’ve had with it. What’s A Rickroll ...| Subin's Blog
We made a stair into a Piano ! It was our college tech fest and we needed something cool to showcase, something audience can interact with and have fun ! Piano Stairs sounded like a cool idea, but implementing it was a challenge. I’m a 3rd year B.Tech CS engineering student now and this is my first time hacking with hardware. So I didn’t know much. I was joined by my juniors, Muhammed Hashim and Athul Raj, both in their 2nd year of CS engineering. They have played with hardware before and...| Subin's Blog
I attended my first KDE India conf ! conf.kde.in 2020 happened in Maharaja Agrasen Institute of Technology, Delhi during January 17-19, 2020. I started contributing to KDE since 2019 in localization as part of Swathanthra Malayalam Computing. The KDE localization process is still on SVN and it’s difficult for a newbie to localize. I simplified it for the Malayalam localization by setting up an easy to use web interface with Weblate. I attended #CKI2020 as a speaker. Event I attended CKI2020...| Subin's Blog
Writing this at Delhi airport waiting for the flight back home. I came to the capital city of India for KDE India Conference. This blog is a part of the revolving around the sun series : 19 years of revolving around the sun 18 years of revolving around the sun 17 years of revolving around the sun This birthday is very fancy : 01-20-202020:20:20MM-DD-YYYYHH:mm:SS I’m turning 20 on 20 in the year of 2020. Very fancy ! And at 20:20 (8PM) tonight, it’s the peak moment of fanciness 😂. The n...| Subin's Blog
About Lately, I’ve been volunteering for Swathanthra Malayalam Project (SMC). I took up the initiative in revamping KDE localization which was dorminant for many years. More about how, why I started this is in this Twitter thread. We were successful in pushing new Malayalam localization to the wide range of KDE products. November 1 is the birthday of Kerala state of India. Kerala was formed on the basis of the language spoken, Malayalam. Being November, Infokairali magazine decided to roll ...| Subin's Blog
Today, I’m introducing Varnam Editor, an easy software for you to write Malayalam and other Indian languages. It is easily installable for GNU/Linux distros like Ubuntu, Linux Mint, Debian, Archlinux etc. Technically, it’s an editor for transliterating Indian languages. Varnam Editor uses an existing library called Varnam and makes it easy to install & use. Transliteration From Wikipedia : Transliteration is a type of conversion of a text from one script to another that involves swapping ...| Subin's Blog
I’m happy to announce a new Android app called “Manglish”, it’s an app to convert Malayalam text to Manglish. It’s a GNU GPL v3 licensed completely free software app with no ads thanks to the donors. Kept it as light as possible. You can download & install it in many ways : Play StoreF-DroidAPK (1.5MB) Updates 2021 May: Version 7 released with new On Screen Button feature. 2020 August: App has reached 5000 active installs. 2019 November : App has reached 1000+ active installs and mo...| Subin's Blog
I have an interesting story of how I learnt & used a curse word. Myru In Malayalam, a main curse word is “myru” which translates to “pubic hair”. In Tamil, it simply means “hair”. You can just go to a barber shop and say “annaa, cut my myru”, but in Malayalam this sentence is hilarious 🤣. When you refer the word to someone, it becomes “myre”. It’s like calling someone bro, but in the worst way possible : eda myre = hey pubic hair This word is weird. Urban dictionary c...| Subin's Blog
Instagram allows you to livestream from the phone only. And that too from the camera which means you can’t add extra effects, overlays or cool stuff like that. If you could livestream from the computer, you can customize the livestream video as you like. Similar to livestreams on YouTube or Twitch. I was bored and was thinking of cool projects to do. I just got into Instagram and was checking it out. Livestream was pretty cool ! So I searched for livestream from desktop and found this. It w...| Subin's Blog
Writing this at CUSAT MakeATon Hackathon. Part of the revolving around series : 18 years of revolving around the sun 17 years of revolving around the sun age =18age = age +1 I have officially revolved around the sun 19 times. 19 years of existence. This is the beginning of my last teenage year. I feel old. A tagline that I’ve been using these days is “A 21st century teen”. Well that’s gonna go off in a year. Coding I participated in a lot of hackathons this year. Well, I’m writing t...| Subin's Blog
Year Review 👏👏👏 And there goes another year. Been very inactive in this blog. Should have blogged of some of the major events, but couldn’t. I’m all now posting stories on Instagram and on my channel in Telegram. Here’s a summing up of my year 2018. Coding I kinda tried doing a #100DaysOfCode challenge, but stopped at 73. This is my longest streak ever on GitHub ! When I look back at my contribution wall, I can see what I’ve been doing my whole year. It’s kind of like a jou...| Subin's Blog
I mentioned about me working with the FOSS club of my college in a recent post. Well, we’re getting more active ! On Software Freedom Day 2018, we did an OpenStreetMap mapathon. OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. Unlike Google Maps, OSM is completely open source. Its data can be accessed and used by anyone. Because of this, many softwares and organizations use OSM. Examples would be Pokemon Go, Facebook and many others. Mapathon An OSM...| Subin's Blog
| Subin's Blog
I’ve been doing a lot of Linux Mint installations lately and one very annoying thing that I found in 2 laptops was the non availability of WiFi driver. Apparently, it’s a new hardware and is not in the Linux kernel. The hardware is Realtek device d723. This new WiFi hardware is being shipped in new PCs and laptops now. Without having the internet, one can’t do almost anything. So it’s important to have this fixed up. UPDATE : Added a new method to make it work on Ubuntu 18.04 LTS If m...| Subin's Blog
I’m legally an adult now. I have successfully revolved around the sun 18 times. Yay ! This post is dedicated to the future me who will be having nostalgic feelings reading this. Hey there, future me ! Coding Lobby was a mistake. I think I’ve wasted my 2 years in developing it. I was too ambitious. But I gained a lot of experience. This was the first time that I got into cross-compiling, virtual environments, Android development, etc. Every project is an experience may it be a disaster or ...| Subin's Blog
CryptoDonate is a JavaScript (vanilla JS) library to embed a donation button for cryptocurrency. It doesn’t require any external library and is very lightweight. I created it to replace my existing BTC donation button in my blog. DemoDownload Features Supports BTC, LTC, ETH, XMR Lightweight Have an embed script Easy usage Supports theming Widget You can simply add the CryptoDonate widget to your blog or site by using this Widget Maker Tool. The widget maker tool generates a script that will...| Subin's Blog
I got into Debian packaging and one of the most brutal part was to type in the GPG secret key’s password every time I sign a package. I wasted a lot of time typing my long password. I searched a lot to cache my password for some time after I type it once. All of them said to edit gpg-agent.conf, but none of them worked for my fresh installation of Xubuntu 16.04. I’m writing this to save you a lot of trouble. First of all, install seashore : sudo apt install seashore Seashore is a great a...| Subin's Blog
Sweet 17 ! The age in between an adult and juvenile. I’m going to take a relook at my 16th year. Coding Lobby 1.0 was released. That was a trough one. Francium logSys 0.7 was released Updates to Francium voice Release of Francium Diffsocket & Francium Star Many more contributions to FOSS I could have done more if there was less school. I also got into Android programming and released my first app Lobby. Videos I took my old hobby of making videos. Editing using Kdenlive makes me happy. I lo...| Subin's Blog
Google Code In is a contest run by Google for teenagers (13-17) to promote contributing to open source projects. It is like Google Summer Of Code, but for teenagers who are not in colleges. This is my 4th time in Code In and it was fantastic just like before. Here’s a summary : 2013 – Wikimedia 2014 – Drupal 2015 – Ubuntu 2016 – Wikimedia This year (2016), I chose Wikimedia again ! It’s nice to contribute to various FOSS projects. Even a small help to FOSS projects is a big deal....| Subin's Blog
It’s Christmas again and you’ll be receiving all kinds of greetings. How about greeting them back with a fancy way ? Show off your nerdiness with this super cool Christmas Tree in Bash. All you need is a bash shell. Most systems have bash shell by default, so you don’t have to install anything for this ! All thanks goes to the Argentian programmer Sergio Lepore for this cool script. Here’s how it looks : Christmas Tree in Bash First of all open a terminal and copy this script to yo...| Subin's Blog
This is my first interview with a person. I don’t do interviews normally. But when I read about Krishnakant Mane I wanted to know more about him. So I contacted him by email and got the response within an hour. The guy is really hooked up with computers ! Krishnakant Mane is blind, but that didn’t stop him from coding. He created and maintains the GNUKhata project, a free and open source accounting software. GNUKhata is an alternative to the proprietary softwares like Tally which is wide...| Subin's Blog
Paysa is the world’s first platform to empower individuals to maximize their salary across the span of their career. I have taken a look at Paysa and it’s wonderful to know that you can get self-evaluated about your career and salary. I didn’t know there was one. It also gives you guidance to follow the career path of your choice. An excellent service indeed ! I’m very happy that such a company like Paysa has interviewed me. Thank you Paysa. Please do read it ! Read Interview| Subin's Blog
| Subin's Blog
You might have noticed that the , headers in my blog posts are links that can be used to jump to that section. These links are called Jump Links. These Jump Links can be sent anywhere on web for reading that particular section. This is very useful for tutorials as when someone comments a problem, we can use the link to redirect that user to the section where the solution is situated. Demo I’ll show you how to automatically make all headers Jump Links in WordPress. Go to WordPress Admin ->...| Subin's Blog
You might have seen your Facebook friends’ fancy profile pictures with the frame of the sports team they support. These days for any major events, the best way to support them is by adding a frame to your profile picture with their logo. Football (soccer) is my favorite sport. My state Kerala have a franchise club in the Indian Super League called Kerala Blasters. We are the largest club by average crowd attendance and the fans are so passionate. What if a passionate, crazy fan is also a p...| Subin's Blog
It’s been some time since I have been active on this blog. For the past months, I had been paying little attention to my blog. It’s because I was busy with other projects and school of course. From now on, I’ll try to make the blog more active. As a first step, I have updated the theme. This is the third update to the theme. The previous themes were named “Subin’s Blog V1” & “Subin’s Blog V2”. That’s a pretty boring name. So I went to a random name picker website and chose...| Subin's Blog
If you want to just get plainly the architecture of system like “arm” or “x86” in your apps, then this post is just for you. So with this function that I’m gonna present, you will get 3 values, “arm”, “mips” or “x86” whether or not the system is 32 bit or 64 bit. Here is the function : public static String getArch() { String arch = System.getProperty("os.arch").substring(0, 3).toLowerCase(); if (arch.equals("aar") || arch.equals("arm")) { return "arm"; }else if(arch.equa...| Subin's Blog
I’m currently studying in 12th grade at Government Model Girls Higher Secondary School. Don’t mind the word “Girls” in the name, because in higher secondary both boys and girls study. Like schools all over the world, we have an election for each classes to select our class leader. Even in 21st century, our schools were conducting the election with ballot papers. So I thought why not make a software for it ? This led to the creation of “sElec” – a Lobby app for conducting sch...| Subin's Blog
You might have heard about output buffering while you code in PHP. I will tell you what it is and how to use it simply. “Output Buffering” Meaning “Buffering” in computing means store (data) in a buffer while it is being processed or transferred. This is exactly what PHP does too. But, the default mechanism is not this. It is turned off by default i.e : data is not stored in a buffer while it is being processed or transferred. Output Buffering Off (Default) When a user requests a P...| Subin's Blog
Are you as crazy as me when developing WebSocket applications ? It’s so awesome to work with WebSockets that will blow up your mind and irritate you at the same time. WebSockets can be used for any real time applications such as : Games Chat News File Transfer And because it’s impact is so vast, we can develop as many applications as we want. But, a problem arises for freebies like me and you. Problem Running multiple WebSocket servers for multiple apps requires you to run a listening ...| Subin's Blog
Besides coding, my other passion is film making. I have already made some films since the age of 8. But those were raw footage and I didn’t edit them. When I was 11, I created an another film and edited it with Windows Movie Maker. I didn’t publish it and it still exist in my computer. Now, after 5 years I decided to create another film. This time with the help of my friends. I got the idea when I was studying at 5 AM in the morning of Mathematics exam. I’m glad to tell you that I have ...| Subin's Blog
Take PHPUnit as an example. You can install it using Composer doing this : composer require phpunit/phpunit This will install a phpunit shortcut in vendor/bin directory. This obviously means you can run it. But, you would have to point to the exact location of the phpunit file to run : /home/username/mysite/vendor/bin/phpunit phpunit.xml But, that’s long and uncomfortable. And you would have to install PHPUnit separately for each projects. I’m gonna tell you how to install binaries...| Subin's Blog
Today is Earth Day, a special day dedicated to our mother Earth. I didn’t knew about this day until I saw the Google Doodle today morning at 12:15 (around-ish). When I looked it up, I saw the ways to participate in this event : Walk to work, cycle or take public transport Cycle ? That’s my favorite thing besides coding. It’s a way I could relax and exercise without losing the fun. I had this plan long before to go Westwards and reach the beach. In my place, going West is nearer to ...| Subin's Blog
Suppose you want to display something randomly in a news feed, or pick random elements from an array, or anything random in general. Programming Languages are used to define the way how something must be done. Hence in a technical way, it can’t do things randomly on it’s own. Otherwise it would be an AI (Artificial Intelligence). Doing random things is not done at compiling, but in execution. In case of PHP, this doesn’t matter as it’s an interpreter. Note In situations like gener...| Subin's Blog
If you are reading this post, you should have seen the new UI of my blog. It’s a custom made theme created in a week during the exams. It’s similar to the old theme because, I liked it colorful and dark at the same time. I’m a Batman fan and black is good for the eyes. As a programmer, you don’t want to hurt your eyes. The theme is named “Subin’s Blog V2”. The name says it all. Coincidentally, this new theme comes exactly after 1 year of the last theme update. It’s responsive...| Subin's Blog
I have mentioned before about my new project Lobby – A Web Operating System. I have been developing it for the past 1.5 years in my free time. It has been partially completed. To learn more about it, I request you to read this. I’m writing this post to request you to vote for the package Lobby in PHPClasses. If Lobby win it, more people would know about Lobby and I can develop the project further. If you have an account on PHPClasses, you can vote here. The voting ends on March 31st ie To...| Subin's Blog
Say you’re running a process that runs in the background. It’s better to not let the user lose their patience and tell them when it will finish. But, you have the time remaining in seconds. If we show the user : 567 seconds to complete He/she (user) would have to take a calculator and convert it into minutes or hours. Or if the guy/gal is not a math genius, he would close the UI and say “What the Hell ?” The primary point in UI is that Don't irritate the user Mark my words : “You ...| Subin's Blog
Say you were displaying the size of a file in PHP. You obviously get the file size in Bytes by using filesize(). You won’t have any idea what the file size is if you read it in Bytes. Bytes is useful for file transmission in a network, but not for human usage. So, it’s better to convert it to human readable form. The circled areas show the converted size from Bytes. App – Lobby Downloader Here is a simple function to convert Bytes to KB, MB, GB, TB : function convertToReadableSize(...| Subin's Blog
If you have a lot of rows on a table, users will find it difficult to find which cell is in what row. This is because all the rows have the same colour. If we alternate the colours, then the table will be more understandable. We can alternate colours odd-even wise or by 3 rows etc. It can be easily done in PHP. I will tell you two ways to do it. Suppose this is how we output rows : for($i=0;$i < 10;$i++){ echo "<tr><td>What's Up ?</td><td>Sky (Troll Face)</td></tr>"; } Odd-Even Now let’s ad...| Subin's Blog
So I revolved around the sun 16 years. Yes, I turned 16. It seems like I just turned 15 yesterday. As age increases, life becomes harder. This direct proportionality is making me closer to the answer of life. This post is an analysis of myself of what I did and what I plan to do. “Birthdays are a constant reminder of how I wasted time” Past 1 Year As A Student I got full A+ in the 10th grade exam and is now in 11th grade as a C.S student. Got a whole lot of new friends. There is this one ...| Subin's Blog
Everyone must have heard of Pi, the irrational number that never ends. It goes by this : 3.14159265... I have been learning about Pi since I was in 8th grade. All the time in school, I was curious about to which Pi extends. Now, I know the extend – Infinity :P. I dedicated my precious Christmas vacation for finding the useless value of Pi. Why ? Curiosity. Simply, the curiosity made me want to do this. Besides, it’s always fun to do something interesting. DemoDownload The source code is o...| Subin's Blog
A programmer, a teenager, a student, an adventurer – 4 components in my life. When you get all of these at once, I feel a little pressure in my life. Let me explain these 4 parts : Programmer I have been a programmer for 5 years. I started when I was 10 years old. I know these languages : PHP, Python, Bash, HTML, CSS, JavaScript My primary language is PHP. Though developers are going away from PHP, I still like it and would continue that way. Teenager I’m in the 2nd year of teenage lif...| Subin's Blog
In a post that was published some years ago, I explained how to upload an image using AJAX. But, it is an old trick when HTML5 was not standardized. But, now browsers have evolved and almost every person in the world has an HTML5 supported browser. Besides, the old trick used a JS file which is about 15KB. If we used HTML5 mechanism instead, then you can save about 14KB. Demo We use FormData object in JS to make the multipart/form-data, then the file object retrieved from the input el...| Subin's Blog
This post is part of the Google Code in 2015. The task was to Build the dekko app and run all testsuites. You can see the task here. My System Xubuntu 15.10 Wily Werewolf : Xubuntu 15.10 Wily Werewolf Dependencies Installation First of all, I downloaded Ubuntu SDK with the help of this guide. Then, I got the source code URL from Ubuntu Developers Site : git clone https://git.launchpad.net/dekko The source code was about 29 MB. Next thing I did was read “HACKING.md” file. There was a se...| Subin's Blog
As you know, I have made Lobby – The localhost OS. I am in the process of adding more and more apps to it. This post explains how I created the Anagram game and the algorithm used for it. You can download the app from here or search for “Anagram” in the Lobby Store. The full source code is available on GitHub. Anagram Game How It Works ? There is a dictionary file containing many english words. When a user requests for a new puzzle, these happens : Choose random letters Loop through e...| Subin's Blog
After the release of logSys in May 2014, many have been asking for an admin panel of logSys. It’s finally here. I’m extremely happy to release logSys Admin as an app of Lobby. logSys Admin Logo You can find the app here on Lobby. Installation Download & Install Lobby. Open Lobby Open **Lobby Store **and search for “logSys Admin”. Click Install button. Usage Open App from the Lobby Dashboard and click “Go To Admin” button. Click “Setup logSys Admin” button. Enter the cred...| Subin's Blog
[][1]Lobby LogoLobby is a new project of mine which was under development for more than a year. I’m proud to release it today with the first version 0.2. Lobby is a localhost Operating System like Android, iOS etc. What It Is I’ll explain it to you. There are many OSs in this world. From Ubuntu to Windows to Mac to Android to iOS and so on… Developing an application is tough as you have to port it to different OSs. And the language to develop is also different : Ubuntu – C, C++, ...| Subin's Blog
I had to write this post, because I have experienced this a lot. When something doesn’t work especially with code, the asker won’t say the details. He/she just says it doesn’t work. Then it is the duty of mine to find what doesn’t work. To simplify things, when you ask please explain : Contents 1 What doesn’t work ? 2 Any Errors ? 3 Code Samples 4 Explain Clearly </div> ### What doesn’t work ? Expected Result vs Actual Result comparison</li> * ### Any Errors ? Does the compile...| Subin's Blog
It’s been a while since I have written on the blog and there are many reasons for it. I’m writing now because I’m on a vacation for 10 days because of Onam, a festival in Kerala. Reasons School Bored Life (These days, I’m feeling a repulsion) Busy I’ll explain : Since I have passed the 10th grade and is in higher secondary education, the stuff to learn increased. Even the though the subjects to learn have reduced to 6, the size of the books increased. Though I love all the subject t...| Subin's Blog
Time Zones are important if you’re creating a social app which will include chat, social network and others which is interacted with the society. There are many time zones and you have to choose one to set in your server. I would totally recommend using UTC instead of your time zone in server. Web Server and Database server are different and they each have their own configuration. This includes the time zone too. In this short post, I’m going to show how you can set the same time zone i...| Subin's Blog
User ratings are important for your site if you provide downloads of files or run an E-Commerce shop. It is the ratings of other users that tempt your site’s users to buy/download something. So, it is necessary for a site like this to have a Rating System. If you haven’t implemented it yet or want to replace your existing system with a clean one, you’re at the right place. I give to you, Francium Star : a new member in our Francium Project series. This PHP & JS combined package will ...| Subin's Blog
WebSocket is one of the awesomest part of the HTML5 and we developers should experiment with it as it will be the future of client to server communication. In a recent post, I made a tutorial of live chat with WebSockets and PHP. It was the basic step into websockets. But, I have created another chat which is more advanced that has the capability to upload images as well as record audio from microphone of the user. It’s somewhat like WhatsApp or Facebook Messenger. DemoDownload For this...| Subin's Blog
Hey, all.. it’s been a while since I wrote anything on my blog. Sorry guys, but I was working on a project which will be released soon. 🙂 WYSIWYG editors are used by us all on the web and if we are going to create a site, it’s better if the editor on it is WYSIWYG. There are many text editors, but there are none with a Notebook Paper design. Well, in this post I will guide you in creating a notebook paper with CSS3 and making that paper design into a text editor. DownloadDemo Yes, thi...| Subin's Blog
If you are creating a web app and there is conversation to the user without audio and just text, animations and effect will make the app better. In this short post, I’m introducing a simple text effect without any trouble at all. All it does is animate the text’s font size. But, the effect is like the text is popping up. Demo Here’s the code. It’s wrapped in a function and you can easily customize it : function pop_up(){ var begin_size = 10; var end_size = 60; var speed = 3000; $("<st...| Subin's Blog
We all download stuffs and we want it to be perfect. No lagging, just download the fastest way, right ? I don’t download via browsers these days, because it is too slow (< 5 KB/s). Google Chrome downloads are the worst. So, I download via command line now. Not all downloading is easy. Sometimes it will break up. So, we must resume it. Only some servers allow to resume downloads. But, we need client softwares that is able to resume downloads. There are lots of software that can be used to do...| Subin's Blog
Google Translate is one of the best tools on the internet that translates text to another language. Currently it supports 90+ languages. Google has its API for translate, but its notfree and you have to go through a lot of procedures. It’s boring, right ? If your app/website needs a translator, this post will help you. As you know Google Translate is a web app and you can monitor the requests it sends to the server. If you look through the Developer Tools during a translation process, yo...| Subin's Blog
The support forum for the Francium Projects. Please follow the guidelines and ask for support in the corresponding pages. This page is for the support regarding the Francium base class. This doesn’t mean that you should ask support for a specific Francium project here. You should ask for that in their corresponding Ask pages.| Subin's Blog
It’s awesome to get into the depth of the network, especially when it’s the internet. An IP address can get you to a person far away from your home. It will make you mind blown when you dig deeper into the internet network. As you may have read, netstat -an command gave you the IP address of user through Facebook chat. But, this works no more. But, there are still ways to do this. **Facebook **uses the XMPP protocol for chatting which does not disclose the IP address of the chatters...| Subin's Blog
I have made lots of classes and plan to create more and more. But, all of these are just scrambled all over. Here’s what I’m talking about : new LoginSystem(); new FDM(); If you use another class named the same, then it will bring conflicts within your code. So, I decided them to group it with the namespace Fr, short for Francium – one of the least electronegative elements in the periodic table. I’m calling this the Francium project. It has nothing to do with the chemical element...| Subin's Blog
It’s been 3 months since I became less active on the blog. It is because of the S.S.L.C 10th grade exams. It’s all over now and I’m really happy to get back to my blog. In between this long period from January 2015 to March 2015, I had checked my mail sometimes and found a lot of comments asking for solutions. Since I was busy studying and all that stuff, I never had time to reply. But, since now I have 77 days left for the school to reopen again, I’m going to reply to all those comm...| Subin's Blog
Writing programs should be meaningful and in a long future, if you or anyone looks back at the code, then he/she must understand it. We all write codes, but do we have a standard of writing the code ? If we write codes without any standards and just go for it, then the program would be messy and no other programmer would like to read it. Here’s what I’m talking about : A guy writes code as he like : <? //A function to forget. Just a demo function for showing code standards. Nothing is No...| Subin's Blog
This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this: Hi there! I’m a bike messenger by day, aspiring actor by night, and this is my blog. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin’ caught in the rain.) …or something like thi...| Subin's Blog
HTML5 is the newest HTML version and it has tons of new features. New input types, output & input (audio, video) and many more. It is now absolutely necessary for projects to move to HTML5 to enjoy new features. Drupal is also converting to HTML5 in the upcoming stable 8.0 release. Drupal has started the HTML5 Initiative to convert Drupal to HTML5. Now, this will upgrade Drupal into new heights. HTML5 HTML5 Logo The latest version of HTML upgrades the old HTML to new technology. ...| Subin's Blog
This post contains information regarding the Drupal Core issue. This post will explain how the bug was reproduced and how the test patch was created. The bug was “Wrong message displayed after contact form mail(s) cannot be sent”. Requires Drupal 8.0 Contact Module Note that URLs mentioned in this post “http://mydrupalsite.com/" is the URL of your Drupal installation and “/mydrupalsite” is the folder location of Drupal installation. Reproducing Bug First of all we need to make a c...| Subin's Blog
I have been using WordPress for 2 years and haven’t tried out other CMS platforms. I heard about Drupal through the internet and via my I.T textbook of my school. But never got the time to try it out. Now, I’m a participant of Google Code In, 2014 and Drupal was one of the Open Source organization in it. I tried Wikimedia last year but it was hard, because it was really big for me to work on. This year, I chose Drupal, because that it is a CMS platform used by millions around th...| Subin's Blog
Bash is like the very complicated language, even a space can make a syntax error. But, when you get into it often, you will get a hang of it and it will be easy. This post is a solution to one of the most common problems that happen to a newbie in Bash and it’s about a single whitespace. Here is a sample Bash file : a = 50 echo $a and when you execute it, the error will be as follows : script.sh: line 1: a: command not found This error is produced by the error in defining the variable “...| Subin's Blog
In Bash, we can add contents to file easily using the > character. Like this : echo "myContents" > ~/myfile.txt What if you want to append contents to the file without overwriting ? The easiest way to do this is change the “>” to “»”. Just by making this small change, appending will be done : echo "myContents" >> ~/myfile.txt Even if the file doesn’t exist, Bash will create one with the contents given to append. You can also use cat to append : cat >> ~/file.txt << EOF This is...| Subin's Blog
All programming languages have the if & else conditions and they’re different in syntax according to each programming languages. In Bash, it’s really different and even a small space can cause syntax errors. So, you have to be careful while writing Bash code. In this post, I’ll give you many examples on how to use if and else conditions in Bash. if, else a="AC" if [ $a = "AC" ]; then echo "yes" else echo "no" fi Notice the usage of then. It’s necessary to let Bash know that i...| Subin's Blog
It’s really easy to create a file in Bash with cat and > : cat "/home/simsu/file.txt" > "/home/simsu/file.txt" But, what if you want to add contents to file too ? In this case, we can use cat and echo. Here’s how we do it in echo : echo "My File, My Choice" > "/home/simsu/file.txt" But, there’s a problem with doing like this. Since there is an option to limit the characters of a Terminal command, adding large contents is not possible. In this case, we need to use cat. The usage is very ...| Subin's Blog
Root users have the privilege to do administrative stuff in Linux and if you’re creating a Bash script to install something or change something in the system, you need root. So, checking whether the script was ran by root is very important. if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi There is no else condition. You can add the code which will does stuff in root after the above. If root didn’t ran the script, then the script will terminate itself without continuing afte...| Subin's Blog
Newton Color Disc is used to find the color got by the combination of multiple colors. The color is not actually formed, but the eye identifies the combination as another color due to persistence of vision. Normally, Newton’s Color disk is made by marking sectors filled with color on a circular shaped disc. When this disc is rotated at high speed, we see the circle as another color. This principle led to the method of creating different colors by the combination of some primary colors at di...| Subin's Blog
There are softwares already that helps to replace a string in a file. Suppose, if you’re making a program that requires saving some data in to a file. By “adding”, the program is actually replacing a word. Let’s see how it’s done in PHP & Python. This is the file where we are going to replace the word : thisWord I got thisWord for making it thatWord replace thisWord already my friend. We replace the word “thisWord” to “thatWord” containing in this file. PHP <?php $file...| Subin's Blog
A folder has files and sometimes sub directories. If we use the normal function for obtaining contents of a folder, we won’t get the details of the files in the sub directories. In this case, we have to look over into the sub folders and into other sub folders within this sub folder. This looking up of files deep down is called Recursive Folder Searching. By doing this, we can search for a file or do various actions with each files thus recursed. An example case of this is the replacing so...| Subin's Blog
Palindromes are unique words that are read the same forward and backward. We can identify them using out eyes and brain. How about we identify using a simple program in PHP & Python ? PHP <?php $word = strtolower("Malayalam"); $splitted = str_split($word); $reversedWord = ""; $length = strlen($word); for($i = 0; $i < $length; $i++) $reversedWord .= $splitted[$length - $i - 1]; echo $word == $reversedWord ? "It's a palindrome !n" : "It's not a palindromen"; ?> Instead of the loop to reverse ...| Subin's Blog
Python & PHP are great languages and there are many similarities between them. In this short post, you will learn how to execute terminal commands in PHP & Python. PHP As I said before many times in other posts, there areexec andsystem command to execute commands : exec("firefox ‘http://subinsb.com’"); Or in the other way : system("firefox ‘http://subinsb.com’"); Python In Python, there is no exec or system function. But there is a system function in the os nodule. So, you have to inc...| Subin's Blog
Infinite loops are loops that doesn’t have a defined ending. It will continue to run until the program it’s running in is terminated. Normally an infinite loop is created using while loop and is used for continuity of the same program. In this short tutorial, you will learn how to make an infinite loop in both PHP & Python. PHP There is no need of defining any variables. while(1){ print "Hello" } It can be done in two other ways : while(True){ print "Hello" } for (;;) { ...| Subin's Blog
As you know, when you SSH into a system, it will ask for the password which you have to enter everytime. But in cases where you’re SSHing in a script or in a loop, its a really time consuming and boring thing to enter password everytime. So, in this case you have to configure SSH to use a password to enter when asked. But, there is no default option in the ssh command to set this due to security reasons I think. Therefore we should use another way to automatically enter the password. Fortun...| Subin's Blog
It’s been some time since I made some changes to the blog apart from new posts. It took me this much time because of school, of course. Here are the main changes that I hope to add to the blog : HTTPS No Ads Short Posts HTTPS There’s nothing like feeling secure in Internet. So, I have decided to add HTTPS support to the site. It’s made possible free of cost, because CloudFlare actually gives HTTPS feature with certificate for absolutely free and it doesn’t require for your server ...| Subin's Blog
Brute Force is a time consuming cracking process to log in to a user’s account of a web site. It’s not common and requires very high resources including the most important factor : TIME. What’s Brute Force Suppose, your email website have an account of username “abel”. His big enemy who is a nerd, wants to send rubbish stuff to Abel’s friends to make his friends angry. Your site is heavily protected except for Brute Force and the enemy is willing to give as much time to log in to...| Subin's Blog
If you have tried to access a log file in /var/log using PHP in Linux, you will see the “Permission denied” error. This is because, Apache doesn’t have read permission on the log file. Let’s look at the user groups that have permission to access the log files : it’s root and the program which created the file. Suppose, let’s say the log file is “/var/log/squid/access.log”. That file’s group and owner will be “proxy” and others won’t even have the read permission on ...| Subin's Blog
We all love to play Chess, the most fascinating game that absolutely needs good thinking powers. You know that, comparing a human to a computer logically and arithmetically, computer has the superior power. So, certainly if you play a chess game with computer as opponent, a 90% chance is for the computer to be the winner. But, it is not sure. It was actually in C language by Oscar Toledo Gutiérrez, who created chess game program in less than 2 KB. Since, it’s C, compiling is necessary. B...| Subin's Blog
You might know the DOCUMENT_ROOT value of the $_SERVER array. This value indicates the absolute location of the site directory where pages are served. In short, it’s the public folder of site as defined in the server’s configuration. Here’s a quick example : If you have a site in /home/me/site and can access it by http://site.dev, then the $_SERVER[‘DOCUMENT_ROOT’] is “/home/me/site”. If any page in the server, even if it is in many sub folders, the DOCUMENT_ROOT value wil...| Subin's Blog
With the introduction of HTML5, a new technology was evolved in 2011 called WebSockets. This technology enables live connection with the server even after the page finished loading. It’s a better, replaceable version of AJAX for client to server communication in the background. With WebSocket technology, its possible to have a direct communication between server and client without any interruption and faster data transmission. So, to demonstrate this to me and for you, We’re going to...| Subin's Blog
HTML5 has tons of new stuff that are exciting and very interesting. It arrived with features that would replace the need of Flash in browsers. Since the features that were available in Flash is coming into the native JavaScript, soon we won’t have to update our Flash player plugin and depend on Adobe for new awesome features. More integration with hardware technologies to the Web is the main important thing. We can now access the audio & video hardware of the user’s system efficiently ...| Subin's Blog
The Web is growing rapidly. Each day, new features are arriving. With the coming of AJAX, many websites became more easy to handle. With jQuery, websites became more attractive with animations and styles. In this tutorial, we are going to create a stylish animated Login Form with jQuery, CSS & AJAX. With this, the login time for the user is greatly reduced as the page shouldn’t be loader all over again. DownloadDemo The Login Page We make a login page first loading with jQuery and th...| Subin's Blog
If you’re using **phpMyAdmin **(PMA), you know that every time you use the application, you have to log in and when the cookie expires, you have to log in again. It’s an annoying thing to log in every time for a developer who needs to do work fast. There is a way to stop this annoying thing. It’s by disabling the login form and auto login when you visit phpMyAdmin. As an application PMA also have a configuration file though it’s not defaultly created in PMA. It’s a PHP file whe...| Subin's Blog
Debian Systems like Ubuntu and others’ software packages has the extension .deb. With the file, you can install softwares on your system. While you click the “Install” button on Ubuntu Software Center or on Synaptic Package Manger, what the system actually do is downloading the .deb file from the server and installing it. These .deb files are installed using the dpkg software. It’s not necessarily required for you to have internet to install softwares, but if you don’t have the de...| Subin's Blog
Laravel is a PHP framework that reduces the work load of creating PHP applications. As it is a framework, there are limitations and some problems just like any other PHP program. Laravel framework has a “public” folder. The HTML files that are going to be displayed on Web Server will be from this folder. Since it is a sub directory of the framework, to access the real site, we would have to go to the following URL : http://example.com/public Actually, with some server configuration you ca...| Subin's Blog
StatCounter doesn’t really have a Popular Posts plugin for WordPress. Though many WordPress blog uses SC, it doesn’t have a widget that shows the Popular Posts. I uses it and wanted to have this feature. So, I created a plugin called StatCounter Popular Posts written in short ad SPP.| subinsb.com
TTL (Time To Live) is a timer value included in packets sent over networks that tells the recipient how long to hold or use the packet before discarding and expiring the data (packet). TTL values are different for different Operating Systems. So, you can determine the OS based on the TTL value. You can get the TTL value by pinging an address. Here is the output got by pinging “subinsb.com” on my system :| subinsb.com