1 November 2020

NETLINK HG323RGW latest firmware/software update 1.0.35-200929

Old version 1.0.29-200319 
* Modem randomly auto reboots/restarts 4-6 times a day. 

New version 1.0.35-200929 
* Very stable, no more auto restarts. 
* Significant speed improvement compared to old. 

 There was discrepancy in the firmware version published on BSNL Website and NETLINK ICT Website, i got latest one from customer support via Email. Hope this helps someone who experienced same issue as me.

10 April 2020

Convert all MyISAM tables into InnoDB

InnoDB has become the default Storage Engine for mysql tables, which offers more features and better performance than MyISAM.

If you have website created in or around the year 2009-2010 then your website still be using MyISAM based tables even if you have already upgraded your mysql server version to the superior or latest, like i had one.


Here are the steps to convert all MyISAM tables into InnoDB.

login into SSH terminal and run the commands and queries.
step 1:
mysql -u root -p database_name

you will be asked to enter password, then you will see mysql console where you can execute queries.

step 2:
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;')
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='MyISAM'
AND table_schema = 'database_name';


now you will all table names that has MyISAM as storage engine with query format to convert into InnoDB.
example
ALTER TABLE table_name ENGINE=InnoDB;


step 3: now copy all the alter queries and paste in the mysql console. you can copy paste one by one or all at once.
be aware of | and +------------------------------------------------------+ around the list. you can use text/code editor like notepad, notepad++ , vs code to remove those characters.


Thanks & Credits to https://computingforgeeks.com/how-to-convert-all-mysql-tables-from-myisam-into-innodb-storage-engine/


28 March 2020

get access token from google oauth2 service account json file using jwt token

Here is a simple code snippet that takes google service account .json file as input and gives you access token with the specified scope.



Hope it helps somebody who is in need of , or been searching for it.

22 January 2020

Install latest linux kernel on Ubuntu server

Sometimes upgrading linux kernel may increase overall performance of your server (including network and task processing).

You can download any version of kernel from here
https://kernel.ubuntu.com/~kernel-ppa/mainline/

Latest Stable Kernel: 5.4.13 https://kernel.org

so we install kernel 5.4.13

cd /tmp/

wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.13/linux-headers-5.4.13-050413_5.4.13-050413.202001171431_all.deb

wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.13/linux-headers-5.4.13-050413-generic_5.4.13-050413.202001171431_amd64.deb

wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.13/linux-image-unsigned-5.4.13-050413-generic_5.4.13-050413.202001171431_amd64.deb

wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.13/linux-modules-5.4.13-050413-generic_5.4.13-050413.202001171431_amd64.deb

sudo dpkg -i *.deb


if your Ubuntu version is old you may need to install additional dependency packages

You can search any missing packages here https://packages.ubuntu.com/search and get their download links and install using dpkg -i .deb

3 November 2019

Telegram bot file_id parser

function base64url_decode($data) {
  return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}
 function rle_decode($string)
    {
        $new = '';
        $last = '';
        $null = chr(0);
        foreach (str_split($string) as $cur) {
            if ($last === $null) {
                $new .= str_repeat($last, ord($cur));
                $last = '';
            } else {
                $new .= $last;
                $last = $cur;
            }
        }
        $string = $new.$last;
        return $string;
    }
function parse($s)
{
$s = base64url_decode($s);
$s=rle_decode($s);
   $r=unpack("ifile_type/idc_id/qfile_id/qaccess_hash",$s);
    return $r;
}

var_dump(parse('AgADBAADZbMxG7cJAVGXAeNiLWOiH5lPqBsABAEAAwIAA3kAAzcYAwABFgQ'));

possbible file_type list

0 = thumbnail
2 = photo
3 = voice
4 = video
5 = document
8 = sticker
9 = audio
10 = gif
13 = video_note (round video)

Setup Network File System(NFS) Client and Server on Ubuntu

server side run the following commands.


apt install nfs-kernel-server

vi /etc/exports

add /path/you/want/to/share/with/client 10.0.0.0/16(rw,sync,no_root_squash,no_subtree_check)

save it

run exportfs -v
run exportfs -ra


client side commands


apt install nfs-common

mount -t nfs -o vers=3 10.0.0.4:/remote/path /local/path

for persistent mount, add entry in fstab.
vi /etc/fstab

10.0.0.4:/remote/path /local/path nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

4 February 2019

TANGEDCO TNEB AE 2018 Results, Cut-off, Question papers and Answers

TANGEDCO TNEB AE 2018 exam which was conducted on 30/12/2018 its result was released today 04/02/2019 around 7pm-8pm.

i have collected question papers from their unstable website for all department with answers.

You can view or download questions and answer from google drive link https://drive.google.com/drive/folders/1cGjvM3tdMk0AaDKbS5fVTSVR9TC3Xx_B

Check your marks here  https://drive.google.com/open?id=1i40-NM-Pt4TxJc7sW-wakJzpG3yLsK5M
Cutt-off marks https://drive.google.com/open?id=1rLtPFxX9UTL76pljY8ehs1Qp-H0AavM-

better luck next time.


8 September 2018

execute root commands via php

Solution using a binary wrapper (with suid bit)

1) Create a script (preferrably .sh) that contains what you want to be ran as root.
# cat > php_shell.sh <<CONTENT
  #!/bin/sh
  /sbin/service sshd restart
CONTENT
2) This file should be owned by root, and since it will later run with root permissions make sure that only root has permission to write to the file.
# chown root php_shell.sh
# chmod u=rwx,go=xr php_shell.sh
3) To run the script as root no matter what user that executes it, we will need a binary wrapper. Create one that will execute our php_shell.sh.
# cat > wrapper.c <<CONTENT
  #include <stdlib.h>
  #include <sys/types.h>
  #include <unistd.h>

  int
  main (int argc, char *argv[])
  {
     setuid (0);

     /* WARNING: Only use an absolute path to the script to execute,
      *          a malicious user might fool the binary and execute
      *          arbitary commands if not.
      * */

     system ("/bin/sh /path/to/php_shell.sh");

     return 0;
   }
CONTENT
4) Compile and set proper permissions, including the suid bit (saying that it should run with root privileges):
# gcc wrapper.c -o php_root
# chown root php_root
# chmod u=rwx,go=xr,+s php_root
php_root will now run with root permissions, and execute the commands specified in php_root.sh.

If you don't need to the option to easily change what commands that will be executed I'd recommend you to write the commands directly in wrapper.c under step 4. Then you don't need to have a binary executing a external script executing the commands in question.
In wrapper.c, use system ("your shell command here"); to specify what commands you'd like to execute

source https://stackoverflow.com/a/8532448

4 August 2017

bsnl 's digital india journey begins with blocking ssh port 22

UPDATE: 15/08/2017 FINALLY BSNL UNBLOCKED PORT 22

As you may have noticed BSNL broadband users no longer able to access to their remote servers through SSH ,

also many users reported the same here https://broadbandforum.co/threads/bsnl-broadband-seems-to-have-blocked-ssh-port-22-on-their-network.151617/

if you have root access to your remote server you can use iptables's port redirect rule to fuck dumb bsnl bastards right in their holes.


run this simple command once you logged into your remote server using VPN or proxy.


iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 222 -j REDIRECT --to-port 22

you can change 222 to any number you want but make sure the port number is not already in use.


after this, just change port from 22 to 222 in your putty or any ssh client,now you should be able to access your server without VPN or proxy.





20 February 2017

the mother

மனைவி இறந்த பிறகு மீண்டும் ஒரு திருமணம்
செய்த தகப்பன் தன்னுடைய சிறிய மகனிடம்
கேட்கிறான்..

"உன்னுடைய இப்போதைய அம்மா
எப்படி".என்று.

அப்போது அந்த மகன் சொன்னான் .

"என் அம்மா
என்னிடம் பொய் சொல்பவளாக
இருந்தாள்.

ஆனால்
இப்போதைய அம்மா என்னிடம் பொய்
சொல்வது இல்லை"

இதைகேட்ட தகப்பன் கேட்டான்..!

" அப்படி உன் அம்மா உன்னிடம் என்ன பொய்
சொன்னாள்?"

அந்த குழந்தை சிறு சிரிப்புடன் தன்
தகப்பனிடம் சொன்னான் .....

"நான் சேட்டைகள் செய்யும்போது என் அம்மா
சொல்வாள்,

எனக்கு இனிமேல் சாப்பாடு
தரமாட்டேன் என்று .

ஆனால் கொஞ்சநேரம்
கழிந்த பிறகு என்னை தன்னுடைய மடியில்
அமர்த்தி பாட்டுபாடி ,

நிலாவைக்காட்டி
கதை சொல்லி அவள்தரும் ஓவ்வொரு பருக்கை சோற்றிலும் அவளுடைய # பாசம் இருக்கும்..

ஆனால்..

இப்போதைய அம்மா,நான் சேட்டைகள் செய்யும்போது சொல்வாள்

'உனக்கு சோறு
தரமாட்டேன்' என்று .

இன்றுடன் சாப்பிட்டு 2 நாட்கள் ஆகிறது".

பெற்ற தாய்க்கு நிகர் இந்த உலகில்
யாருமில்லை...!!

( படித்ததில் வலித்தது)

12 February 2017

save farmers

சிகரெட் 🚬🚬இல்லாமல் ஒருவரால்
வாழமுடியும்...
ஆனாலும், சிகரெட்🚬🚬 உற்பத்தியாளர்
பணக்காரராக இருக்கிறார்.

மதுவில்லாமல்🍺🍸🍷 ஒருவரால்
வாழமுடியும்...
ஆனாலும், உற்பத்தியாளர் பணக்காரராக
இருக்கிறார்.

மொபைல் 📱📞📲இல்லாமலும் ஒருவர்
வாழமுடியும்...
ஆனாலும், மொபைல்📲📞📱 உற்பத்தியாளர்
பணக்காரராக இருக்கிறார்.

உணவில்லாமல் எவரும்
வாழமுடியாது!...
ஆனாலும்,

🌽🍌🍍🍆உணவு🌾🍎🍏🍊🍋🍈
 உற்பத்தியாளர்களான🐏🐄🐐🐓🐖🐂
விவசாயிகள்
ஏழைகளாகவே இருக்கின்றனர்...!

ரொம்ப பிடிச்சா ஷேர் பண்ணுங்கள்...                                      
🍏🍎🍐🍊🍊🍋🍌🍉🍇🍓🍈🍒🍑🍍🍅🍆🌶
     👏👏விவசாயிகளை மதிப்போம்👏👋🏻👏

30 January 2017

Inspiring lines

✍🏽கடலில் பெய்யும் மழை பயனற்றது,
✍🏽பகலி ல் எரியும் தீபம் பயனற்றது,
✍🏽வசதி உள்ளவனுக்கு கொடுக்கும் பரிசு பயனற்றது,
✍🏽நோய் உள்ளவனுக்கு கொடுக்கும் அறுசுவை உணவு பயனற்றது.
✍🏽அதுபோல் முட்டாளுக்கு கூறும் அறிவுரையும் பயனற்றது.
✍🏽வறுமை வந்த காலத்தில் உறவினர்களின் தயவில் வாழ்வதை விட புலிகள் வாழும் காட்டில், புற்கள் நடுவில் உள்ள மரத்தடியில் வாழ்வது மிகவும் நல்லது.
✍🏽 பல பறவைகள் இரவில் ஒரே மரத்தில் இருந்தாலும் காலையில் ஒவ்வொன்றும் ஒரு திசையில் பறக்கிறது.
✍🏽 ஆதலால் நம்மிடம் நெருங்கி உள்ளவர் எப்போதும் நம்முடன் இருப்பதில்லை, இதை உணர்ந்து கவலைப்படாமல் வாழ வேண்டும்.
✍🏽பெரிய யானை சிறிய அங்குசத்தை கண்டு பயப்படுகிறது,
✍🏽 சிறிய மெழுகுவத்தி பெரிய இருளை விலக்குகிறது,
✍🏽பெரிய மலை சிறிய உளியால் வெட்டி எடுக்கப்படுகிறது.
✍🏽பெரிய உருவத்தினால் என்ன பயன்? உருவத்தை கொண்டு ஒருவரை எடை போடக்கூடாது.
✍🏽வேப்ப மரத்தை கிளை முதல் வேர் வரை நெய்யும், பாலும் ஊற்றி வளர்தாலும் அதன் கசப்பு தன்மை மாறாது.
✍🏽அது போல் கெட்ட மனிதர்களுக்கு எத்தனை விதமாக உரைத்தாலும் அறிவு வராது.
✍🏽சாராயப் பாத்திரத்தை நெருப்பில் இட்டாலும் அதன் மணம் போகாது.
✍🏽யானையிடம் இருந்து 1000 அடி விலகி இருங்கள்,
குதிரையிடம் இருந்து 100 அடி விலகி இருங்கள்.
கொம்பு உள்ள மிருகத்திடம் இருந்து 10 அடி விலகி இருங்கள்.
ஆனால் உங்களுக்கு நம்பிக்கை துரோகம் செய்யும், ஏமாற்றும் மக்கள் வசிக்கும் ஊரை விட்டு சென்று விடுங்கள்
✍🏽எல்லாம் காரியங்களிலும் நீங்கள் உங்கள் கொள்கைகளில் பிடிவாதமாக இருக்காதீர்.
✍🏽வளைந்து நெளிந்து வாழ கற்று கொள்ளுங்கள்.
✍🏽காடுகளில் நீண்டு நேராக உள்ள மரங்களே முதலில் வெட்டப்படுகிறது.
✍🏽அறியாமையை விட கொடிய எதிரி இல்லை.
✍🏽கோவத்தை விட கொடிய நெருப்பு இல்லவே இல்லை....🌹
🙌🏾இருபது ரூவா  பிச்சைக்காரனுக்கு போட யோசிக்கிற நாம அதையே ஹோட்டல்ல சர்வருக்கு டிப்ஸா  கொடுக்குறோம்...

⌚️ஜிம்முல ஒரு நாள் பூராம் ஒர்க் அவுட் பண்ண சளைக்காத நாம... வீட்ல மனைவிக்கு உதவி செய்ய சலிச்சுக்கிறோம்...

🙏🏻கடவுளை பிரார்த்திக்க ஒரு மூணு நிமிசத்தை ஒதுக்க சங்கடப்படும் நாம மூணு மணி நேரம் உட்கார்ந்து விளங்காத படத்தை பார்த்துட்டு வரோம்...

💧காதலர் தினத்துக்காக ஒரு வருசமா காத்திருக்கிற நாம அன்னையர் தினத்தை மறந்திடறோம்...

👍🏻ரோட்டோரம் உட்கார்ந்திருக்கும் ஏழை குழந்தைகளுக்கு ஒரு நேர சாப்பாடு வாங்கி தர நினைக்காத நாம அதையே ஓவியமா வரைஞ்சா லட்ச ரூவா கொடுத்துக்கூட வாங்கி வீட்ல மாட்டிக்கிறோம்...

👍🏻ஜோக்கை எல்லாம் பார்வேர்ட் பண்ணுற நாம இந்த மாதிரி மெசஜை கண்டும் காணாமல்  விட்டுடுறோம்...அதில் ஒளிந்து இருக்கும் வாழ்க்கையின் சாரம் புரியாமல்

31 July 2016

Top 10 Android Games of 50 MB


10. Pou
Updated on: 12-Jan-2016
Download size: 20.71MB

9. Rolling Sky
Download size: 30.81MB
Offered by: Clean Master Games

8. slither.io
Download size: 19.44MB
Offered by: Lowtech Studios


7. Mobile Strike
Download size: 45.18MB
Offered by: Epic War

6. Candy Crush Saga
Download size: 66.56MB
Offered by: King

5. Dragon City
Download size: 51.65MB
Offered by: Social Point

4. Subway surfers
Download size: 56.78MB
Offered by: Kiloo

3. Temple Run 2
Download size: 49.31MB
Offered by: Imangi Studios

2. Clash of Clans
Download size: 61.63MB
Offered by: Supercell

1 Pokemon Go
Download size: 59.91MB
Offered by: Niantic, Inc.

11 March 2015

jolo.in alternative

In the recent days, jolo.in free recharge api provider has become more worse than ever. no recharge was successful but the amount getting deducted ,emailed them (sales@jolo.in) couple of times  asking whats going on? no reply yet.

my previous blog post was about mobikwik recharge api.  so in this post i am writing to tell you all how i migrated to mobikwik api without disturbing my current site setup.

here is the trick for Operator code mapping

$op='AT'; //operator code for jolo

$ops=array(
'AT'=>array('op'=>1),
'BS'=>array('op'=>3),
'BSS'=>array('op'=>3,'pvalue'=>'specialRecharge'),
'AL'=>array('op'=>6),
'ID'=>array('op'=>8),
'VF'=>array('op'=>2),
'TD'=>array('op'=>11),
'TDS'=>array('op'=>11,'pvalue'=>'specialRecharge'),
'TI'=>array('op'=>9),
'MS'=>array('op'=>13),
'UN'=>array('op'=>16),
'UNS'=>array('op'=>16,'pvalue'=>'specialRecharge'),
'LM'=>array('op'=>10),
'RL'=>array('op'=>4),
'RG'=>array('op'=>5),
'VD'=>array('op'=>17),
'VDS'=>array('op'=>17,'pvalue'=>'specialRecharge')
);

$opr=http_build_query($ops[$op]);

$uid='email@example.com';  //your mobikwik username probably email id
$pwd='123456';  //your mobikwik password

$amt=; //amount variable
$cn=; //cell number variable

$cir=11; //this can be ignored

$mapp=md5($amt.$pwd.$cn.$uid.'c489hrvv56NV9IVYCY4YER56GRYYB&^fn980b3678b7zv58Z&*VV79V789TV58955T78VTV5');

$url="https://appapi.mobikwik.com/recharge.do?uid=$uid&pwd=$pwd&cn=$cn&$opr&cir=$cir&amt=$amt&reqid=android&mapp=$mapp";

$xml=file_get_contents($url);
$array=simplexml_load_string($xml);
//echo $url;
print_r($array);

if($array->status=='SUCCESS')
{
$txnid=$array->txId;
//do something
}

if($array->status=='SUCCESSPENDING')
{
$txnid=$array->txId;
//do something
}

5 February 2015

mobikwik recharge api

<?php

$uid='';  //your mobikwik username probably email id
$pwd='';  //your mobikwik password

$amt=10; //amount
$cn=9895098951; //cell number

$op=1; //operator id see below for list
$cir=11; //circle id see below for list

$mapp=md5($amt.$pwd.$cn.$uid.'c489hrvv56NV9IVYCY4YER56GRYYB&^fn980b3678b7zv58Z&*VV79V789TV58955T78VTV5');

$url="http://appapi.mobikwik.com/recharge.do?uid=$uid&pwd=$pwd&cn=$cn&op=$op&cir=$cir&amt=$amt&reqid=android&mapp=$mapp";

$xml=file_get_contents($url);
$array=simplexml_load_string($xml);

print_r($array);

?>

Operator and Circle

OperatorID    Operator
1    Airtel
2    Vodafone
3    BSNL
4    Reliance CDMA
5    Reliance GSM
6    Aircel
7    MTNL ( Pin based only)
8    Idea
9    Tata Indicom
10    Loop Mobile
11    Tata Docomo
12    Virgin CDMA
13    MTS ( Pin based only)
14    Virgin GSM
15    S Tel


Circle ID    Circle
1    Andhra Pradesh
2    Assam
3    Bihar & Jharkhand   
4    Chennai
5    Delhi & NCR
6    Gujarat
7    Haryana
8    Himachal Pradesh
9    Jammu & Kashmir
10    Karnataka
11    Kerala
12    Kolkata
13    Maharashtra & Goa (except Mumbai)
14    MP & Chattisgarh
15    Mumbai
16    North East
17    Orissa
18    Punjab
19    Rajasthan
20    Tamilnadu
21    UP(EAST)
22    UP(WEST) & Uttarakhand
23    West Bengal


P.S: MobiKwik is a Bitch.
Enjoy the Bitch ;)

28 December 2014

Find rank of user(s) using mysql query

SELECT 1 + (
SELECT count( * )
FROM user a
WHERE a.balance > b.balance ) AS rank,id
FROM user b
ORDER BY rank;


table structure
---------------

id balance
1 0.50
2 0.25
3 0.10
4 1.20


output
------
rank id
1 4
2 1
3 2
4 3


if you want get rank of a specific user use where clause like this

SELECT 1 + (
SELECT count( * )
FROM user a
WHERE a.balance > b.balance ) AS rank,id
FROM user b WHERE id='1'
ORDER BY rank;





17 April 2013

import GeoIP csv to MySQL DB provided by MaxMind

you can download GeoIP csv database from http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip

unzip  and extract the csv file just upload it your web server

$ips=explode("\n",file_get_contents('GeoIPCountryWhois.csv'));
foreach($ips as $ip)
{
$ip=str_replace('"',"'",$ip); //this variable cantains sample string '1.0.0.0','1.0.0.255','16777216','16777471','AU','Australia'   which means you can use this string directly in mysql insert query







//perform your mysql insert query here

}


that is all :))