// API callback
related_results_labels_thumbs({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$blogger":"http://schemas.google.com/blogger/2008","xmlns$georss":"http://www.georss.org/georss","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$thr":"http://purl.org/syndication/thread/1.0","id":{"$t":"tag:blogger.com,1999:blog-419320228883344195"},"updated":{"$t":"2023-11-26T02:21:41.764-08:00"},"category":[{"term":"Technical"},{"term":"My Poetry"},{"term":"Programming"},{"term":"Release"},{"term":"Life"},{"term":"My Software Applications"},{"term":"Personal"},{"term":"Android Apps"},{"term":"Booklet"},{"term":"Reviews\/Reports"},{"term":"Tutorial"},{"term":"LearnedToday"},{"term":"Hacks"},{"term":"Nostalgia"},{"term":"OneSignal"}],"title":{"type":"text","$t":"Shakes Vision"},"subtitle":{"type":"html","$t":"ShakesVision by Shakeeb Ahmad| The blog \"Shakes Vision\" is all about how I see the world! This blog is to share my views, knowledge and hacks I've learned, My poetry and the software applications I've created. ©Shakeeb Ahmad"},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/posts\/default"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/-\/Programming?alt=json-in-script\u0026max-results=6"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/search\/label\/Programming"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"5"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"6"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-7252855088495953191"},"published":{"$t":"2020-12-31T09:19:00.007-08:00"},"updated":{"$t":"2021-03-12T04:46:03.165-08:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Booklet"},{"scheme":"http://www.blogger.com/atom/ns#","term":"My Software Applications"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Programming"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Release"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Technical"}],"title":{"type":"text","$t":"iPhone Users! Here's a Web App for Qaafiyah Expert"},"content":{"type":"html","$t":"\u003Ch2 style=\"text-align: left;\"\u003ETldr;\u003C\/h2\u003E\u003Cdiv\u003EIf you are in a hurry, here's the link to Qaafiyah Expert - Web:\u003C\/div\u003E\u003Cdiv\u003E\u003Cul style=\"text-align: left;\"\u003E\u003Cli\u003E\u003Ca href=\"https:\/\/q.shakeeb.in\/\"\u003Ehttps:\/\/q.shakeeb.in\/\u003C\/a\u003E\u003C\/li\u003E\u003C\/ul\u003E\u003C\/div\u003E\u003Ch2 style=\"text-align: left;\"\u003EThe Web App and its Journey\u003C\/h2\u003E\u003Cp\u003ERight from the beginning when I \u003Ca href=\"https:\/\/www.shakeeb.in\/2020\/02\/qaafiyah-expert-android.html\"\u003Elaunched \u003C\/a\u003Ean android app for Qaafiyah Expert (an app to assist Urdu poets with rhymes, meter, dictionary, diary, designing and much more), people were requesting the same for iPhone users. As I was using the cross-platform approach for the app, building the same thing for iPhone wouldn't have taken so long. But the problem was, apple AppStore's pricing. I couldn't afford it. Well, most of us can't.\u003C\/p\u003E\u003Cp\u003EAnyway, after some research on pricings, I decided to go for a PWA (Progressive Web App), which is an installable app, but you don't need to pay a single penny to Google or Apple whatsoever.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003EIt does bring some drawbacks, but there are alternatives for most of the incompatible native-app functionalities. For a naïve user though, PWAs and native Android\/ios apps are indistinguishable. For instance:\u003C\/p\u003E\u003Cp\u003E\u003C\/p\u003E\u003Cul style=\"text-align: left;\"\u003E\u003Cli\u003EVisiting a Progressive Web App asks you to \"Add it to Home Screen\", which is alternative to \"Installing an app\"\u003C\/li\u003E\u003Cli\u003EIt does have an icon, just like a native app\u003C\/li\u003E\u003Cli\u003EIt can work offline using service workers etc.\u003C\/li\u003E\u003C\/ul\u003E\u003Cdiv\u003EThis PWA for Qaafiyah Expert had been hosted on my domain 'q.shakeeb.in' for quite a while now, as you can see in the \"first commit\"\u0026nbsp;\u003Ca href=\"https:\/\/github.com\/ShakesVision\/QaafiyahExpert\" target=\"_blank\"\u003Ehere\u003C\/a\u003E. But some of the features were not working as expected, so I didn't announce it \"officially.\" Now that the android app has been completely rewired, performance is improved and speed is optimized, I decided to use the new code-base, modified it for the web-app and deployed it. iPhone users can now finally use this app.\u003C\/div\u003E\u003Cp style=\"text-align: left;\"\u003EIf you are an android user though, I strongly recommend the \u003Ca href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.qaafiyah\" target=\"_blank\"\u003Eandroid version\u003C\/a\u003E, which has some cool extra features and obvious UX advantages.\u003C\/p\u003E\u003Cp style=\"text-align: left;\"\u003EOnce again, here's the link to the web-app:\u003C\/p\u003E\u003Cp style=\"text-align: center;\"\u003E\u003Ca href=\"https:\/\/q.shakeeb.in\/\"\u003EQaafiyah Expert - Live Demo\u003C\/a\u003E\u003C\/p\u003E\u003Cp style=\"text-align: left;\"\u003EHope this will assist in your poetry-writing journey.\u0026nbsp;\u003C\/p\u003E\u003Cp style=\"text-align: left;\"\u003E\u003Ci\u003ERab raakha!\u0026nbsp;\u003C\/i\u003E\u003Cspan style=\"color: #222222; font-family: Consolas, \u0026quot;Lucida Console\u0026quot;, \u0026quot;Courier New\u0026quot;, monospace; font-size: 12px; white-space: pre-wrap;\"\u003E👋\u003C\/span\u003E\u003C\/p\u003E\u003Cp\u003E\u003C\/p\u003E"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/7252855088495953191\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/12\/qaafiyah-expert-web.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/7252855088495953191"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/7252855088495953191"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/12\/qaafiyah-expert-web.html","title":"iPhone Users! Here's a Web App for Qaafiyah Expert"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-2595003895901018021"},"published":{"$t":"2020-12-24T05:50:00.013-08:00"},"updated":{"$t":"2022-01-22T10:10:36.416-08:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Booklet"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Programming"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Release"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Technical"}],"title":{"type":"text","$t":"Rekhta Content Scraper by Shakeeb Ahmad | For Programmers Only"},"content":{"type":"html","$t":"\u003Cp\u003E\u003Cb\u003ENote: \u003C\/b\u003EThis is not yet available for non-programmers. Soon I'll make an easy-to-use version for all, iA.\u003C\/p\u003E\u003Cp\u003EThis scraper with Node.js works for both prose and poetry. Check the \u003Ca href=\"https:\/\/github.com\/ShakesVision\/scraperforliturdu\" target=\"_blank\"\u003EGitHub repo\u003C\/a\u003E for installation instructions.\u003C\/p\u003E\u003Cp\u003EYou would need a text file with all the links you want to download the contents from. To get the list of links, you could manually collect all which interests you, or use the following to scrape all links from an author\/poet page.\u003C\/p\u003E\u003Ch3 style=\"text-align: left;\"\u003EBookmarklets - One Click Solution to get the links etc.\u003C\/h3\u003E\u003Cp\u003ERekhta loads 50 links at a time, and if user scrolls, it adds more content to the DOM. This extra fetch has not been automated in my code yet. (Well I tried, but parsing it wasted so much time that I preferred using manual scroll. Just let the page load, then press \"end\" on your keyboard. Wait for a moment, it will add all the remaining links.)\u003C\/p\u003E\u003Cp\u003EAnyway, once you have the complete list on the page, you can use the bookmarklets below to copy all of them with a click.\u003C\/p\u003E\u003Cp\u003EI've been testing this in browser console for a while now, i.e. open browser console, then paste the script, then change the page text to only what I need, then select and copy them manually.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003ELater on I decided to \u003Ca href=\"https:\/\/www.shakeeb.in\/2020\/10\/magic-of-browser-bookmarks-automate.html\"\u003Euse magic of bookmarklets\u003C\/a\u003E to automate these tasks I've been doing repeatedly:\u0026nbsp;\u003C\/p\u003E\u003Cp\u003E\u003C\/p\u003E\u003Cul style=\"text-align: left;\"\u003E\u003Cli\u003ECopy all the links from the Poet\/Author page.\u003C\/li\u003E\u003Cli\u003EFor \u003Ca href=\"https:\/\/liturdu.sarbakaf.com\" target=\"_blank\"\u003ELitUrdu\u003C\/a\u003E specifically, turn them into an \"object\" with required properties (title, author, link, description, text) and copy it.\u003C\/li\u003E\u003Cli\u003EUse the \"object\" to automatically fill-in text-boxes on new Blogger\u0026nbsp;post.\u003C\/li\u003E\u003C\/ul\u003E\u003Cdiv\u003EUltimate plan is to use Blogger API and post it directly, but this bookmarklet approach doesn't hurt much because most of the things I'm doing are just a click away.\u003C\/div\u003E\u003Cdiv\u003E\u003Cbr \/\u003E\u003C\/div\u003E\u003Cdiv\u003E\u003Cb\u003EBookmarklets\u003C\/b\u003E\u003C\/div\u003E\u003Cdiv\u003E\u003Ci\u003EDrag and drop the links to the bookmarks bar in your browser. (Ctrl+Shift+b to toggle the bar)\u003C\/i\u003E\u003C\/div\u003E\u003Cdiv\u003E\u003Ca href=\"javascript:void%20function(){var%20a=document.querySelectorAll(%22div.contentListBody.contentLoadMoreSection%20%3E%20div%22),b=[];a.forEach(c=%3E{var%20d=c.querySelector(%22a:nth-child(2)%22);d.hasAttribute(%22class%22)||b.push(d.href)}),console.log(b.join(%22\\n%22));var%20c=document.createElement(%22textarea%22);c.value=b.join(%22\\n%22),document.body.appendChild(c),c.select(),document.execCommand(%22Copy%22),document.body.removeChild(c),alert(b.length+%22%20links%20copied!%22)}();\"\u003ECopyRekhtaLinks\u003C\/a\u003E\u003Cbr \/\u003E\u003C\/div\u003E\u003Cdiv\u003EUse on author\/poet's page to copy all the links to their enlisted work\u003C\/div\u003E\n\u003Cdiv\u003E\u003Ca href=\"javascript:'use strict';void function(){var b=document.querySelector('h1').innerText,c=document.querySelector('.authorAddFavorite').innerText,d=document.querySelector('.poemPageContentBody').innerText,e=document.createElement('a');e.href=window.location.href;var a=e.pathname.replace(\/\\\/. \\\/\/,'').replace(\/-stories$\/,''),f=a.split('-').join(' ').split(' ').map(function(a){return a.charAt(0).toUpperCase() a.substring(1)}).join(' ') ' in Urdu Unicode text.\\n' c ' \\u06A9\\u0627 \\u0627\\u0641\\u0633\\u0627\\u0646\\u06C1 \\'' b '\\' \\u0627\\u0631\\u062F\\u0648 \\u06CC\\u0648\\u0646\\u06CC\\u06A9\\u0648\\u0688 \\u0645\\u062A\\u0646 \\u0645\\u06CC\\u06BA\\u06D4',g={title:b ' \\u2014 ' c,text:d.replaceAll('\\n\\n','\\n'),label:'\\u0627\\u0641\\u0633\\u0627\\u0646\\u06D2,\\u0645\\u0635\\u0646\\u0641:',description:f,link:a};console.log(g);var h=document.createElement('textarea');h.value=JSON.stringify(g),document.body.appendChild(h),h.select(),document.execCommand('Copy'),document.body.removeChild(h),alert('Object copied with details!')}();\"\u003ECopyRekhta{}\u003C\/a\u003E\u003Cbr \/\u003E\u003C\/div\u003E\u003Cdiv\u003EUse on individual poem\/story page to copy an object with properties (title, author, link, description, text). Modify as per your needs.\u003C\/div\u003E\n\u003Cdiv\u003E\u003Ca href=\"javascript:'use strict';void function(){document.querySelectorAll('input')[2].value=o.title,document.querySelector('[aria-label=\\'Title\\']').value=o.title,document.querySelector('[aria-label=\\'Enter search description\\']').value=o.description,document.querySelector('[aria-label=\\'Custom Permalink Input\\']').value=o.link,document.querySelector('[aria-label=\\'Separate labels by commas\\']').value=o.label,document.querySelector('body.editable').innerText=o.text}();\"\u003EBloggerPaste\u003C\/a\u003E\u003C\/div\u003E\u003Cdiv\u003EUse on a new Blogger post after pasting the \"object\" from rekhta in console. This will fill in all the required fields in the new post automatically.\u003C\/div\u003E\u003Cp\u003E\u003C\/p\u003E"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/2595003895901018021\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/12\/rekhta-content-scraper-by-shakeeb-ahmad.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/2595003895901018021"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/2595003895901018021"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/12\/rekhta-content-scraper-by-shakeeb-ahmad.html","title":"Rekhta Content Scraper by Shakeeb Ahmad | For Programmers Only"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-2445926190904848113"},"published":{"$t":"2020-10-03T11:17:00.006-07:00"},"updated":{"$t":"2021-11-19T00:40:50.647-08:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Hacks"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Programming"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Technical"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Tutorial"}],"title":{"type":"text","$t":"Magic of Browser Bookmarks - Automate Simple Tasks using JavaScript"},"content":{"type":"html","$t":"\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\u003Ca href=\"https:\/\/1.bp.blogspot.com\/-zhkcEuKdf6s\/YHaaNpSIiJI\/AAAAAAAAFb0\/UCQ8ahc1MtMnTZjG0dG2g7g8v5ehugzqQCLcBGAsYHQ\/s560\/Bookmarklets.png\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg alt=\"Automation using Bookmarklet\" border=\"0\" data-original-height=\"315\" data-original-width=\"560\" height=\"360\" src=\"https:\/\/1.bp.blogspot.com\/-zhkcEuKdf6s\/YHaaNpSIiJI\/AAAAAAAAFb0\/UCQ8ahc1MtMnTZjG0dG2g7g8v5ehugzqQCLcBGAsYHQ\/w640-h360\/Bookmarklets.png\" title=\"Magical Automation using Bookmarklet\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\u003Cp\u003EAs I promised in #LearnedToday, I'm going to show you how much you can achieve with this little bookmark feature in the browsers.\u003C\/p\u003E\u003Cblockquote\u003E\u003Cp\u003EEver wondered how to easily remove citations from a Wikipedia page?\u0026nbsp;\u003C\/p\u003E\u003C\/blockquote\u003E\u003Ch2 style=\"text-align: left;\"\u003EWhat are bookmarks?\u003C\/h2\u003E\u003Cp\u003EThe bookmarks in the browsers are to save the links to the pages you wish to visit again, or you just find them useful and save them for later.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003EInstead of creating a text file \"Imp Links\" and saving all the links there (I've done it a lot), you could use the browser's bookmark feature.\u003C\/p\u003E\u003Cp\u003EThe shortcut to bookmark a webpage in most browsers is ctrl+b.\u003C\/p\u003E\u003Ch2 style=\"text-align: left;\"\u003EWhat more can they do?\u003C\/h2\u003E\u003Cp\u003ETo sum up, they can run JavaScript on a page. So instead of opening the browser console to do run a couple lines of code, you could create a bookmark and click that instead.\u003C\/p\u003E\u003Ch2 style=\"text-align: left;\"\u003EExample?\u003C\/h2\u003E\u003Cp\u003EWhenever I needed to copy something from Wikipedia, I usually had to deal with the references\/citations they have. You must've seen those, with squared brackets around numbers, something like this [1] or with a disclaimer like [citation needed], etc. I needed to remove all those.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003EInitially, I used to do it in MS Word manually, by Find and Replace. I don't remember that now, doesn't matter anyway.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003EFinally, I came to know about these browser bookmarklets, and then a simple regex was enough to do the work for me.\u003C\/p\u003E\u003Cp\u003ENow I have a simple bookmark. I go to any Wikipedia page, select the text I need, and click the bookmark. Viola! Citations are removed.\u003C\/p\u003E\u003Ch2 style=\"text-align: left;\"\u003EHow to create a bookmarklet?\u003C\/h2\u003E\u003Cp\u003EGot to Bookmarks Manager\u003C\/p\u003E\u003Cblockquote style=\"border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;\"\u003E\u003Cp\u003E1. Click three vertical dots in the upper right corner \u0026gt; Bookmark \u0026gt; Bookmark Manager\u003C\/p\u003E\u003Cp\u003EOr chrome shortcut: ctrl+shift+o\u003C\/p\u003E\u003Cp\u003EOr type in the address bar: chrome:\/\/bookmarks\/\u003C\/p\u003E\u003Cp\u003E2. Click three vertical dots in the upper right corner of Bookmark manager (Shows tooltip: Organize)\u0026nbsp;\u003C\/p\u003E\u003Cp\u003E3. Add new bookmark\u003C\/p\u003E\u003Cp\u003E4. It will show a popup with two fields: Name and URL.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003E5. Give any appropriate name, and in the URL bar, paste the JavaScript code you want to execute.\u003C\/p\u003E\u003Cp\u003E6. Click Save.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003E\u003Cbr \/\u003E\u003C\/p\u003E\u003C\/blockquote\u003E\u003Cp\u003EYou have your bookmarklet ready.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003EShow\/Hide Bookmarks bar with ctrl+shift+b. Clicking on the name of your bookmark will run the underlying code.\u0026nbsp;\u003C\/p\u003E\u003Ch2 style=\"text-align: left;\"\u003EAny easier way to do this?\u003C\/h2\u003E\u003Cdiv\u003EIf you don't want to go through all those steps, there's a simple tool called \u003Ca href=\"https:\/\/chriszarate.github.io\/bookmarkleter\/\" target=\"_blank\"\u003EBookmarkleter\u003C\/a\u003E. Paste your JS code, it will generate a link that you can drag and drop to the bookmarks bar.\u0026nbsp;\u003C\/div\u003E\u003Cdiv\u003E\u003Cbr \/\u003E\u003C\/div\u003E\u003Cdiv\u003EFor example, drag and drop the following link to your bookmarks bar. This will allow you to change fonts on any website.\u0026nbsp;\u003C\/div\u003E\u003Cdiv\u003E\u003Cbr \/\u003E\u003C\/div\u003E\u003Cdiv\u003E\u003Ca href=\"javascript:void function(){javascript:(function(){var a=prompt(\u0026quot;Font Name?\u0026quot;);document.getElementsByTagName(\u0026quot;body\u0026quot;)[0].style.setProperty(\u0026quot;font-family\u0026quot;,a,\u0026quot;important\u0026quot;)})()}();\"\u003ESet Font\u003C\/a\u003E\u003C\/div\u003E\u003Ch2 style=\"text-align: left;\"\u003EWhich bookmarklets am I using?\u003C\/h2\u003E\u003Cp\u003E\u003C\/p\u003E\u003Col style=\"text-align: left;\"\u003E\u003Cli\u003E\u003Cb\u003ECitation Remover:\u003C\/b\u003E Removes citations from a Wikipedia page. Drag\u0026amp;drop this link to the bookmarks bar: \u003Ca href=\"javascript:void function(){javascript:function b(){document.body.innerHTML=document.body.innerHTML.replace(\/\u0026lt;sup\\b[^\u0026gt;]*\u0026gt;(.*?)\u0026lt;\\\/sup\u0026gt;\/gi,\u0026quot;\u0026quot;)}b()}();\"\u003ECitation Remover\u003C\/a\u003E\u003C\/li\u003E\u003Cli\u003E\u003Cb\u003ESet Font: \u003C\/b\u003EIf a website is using bad font, use this. As I use Urdu a lot, and Urdu without Nastaleeq font looks ugly. So I apply any font to the page available in my system. Payami Nastaleeq is the default one for me.\u003C\/li\u003E\u003Cli\u003E\u003Cb\u003ECalci:\u003C\/b\u003E A tiny calculator which returns results of simple arithmetic operations.\u003C\/li\u003E\u003Cli\u003E\u003Cb\u003EStyleStripper:\u003C\/b\u003E Strips all CSS styles from a webpage. Helpful if I don't want to load an entire page I want to copy something from. Also works on most of the sites which disable copying using JavaScript. Click StyleStripper and you can copy the text.\u0026nbsp;\u003C\/li\u003E\u003C\/ol\u003E\u003Ch3 style=\"text-align: left;\"\u003EMisc. bookmarklets I created\u003C\/h3\u003E\u003Cdiv\u003E\u003Ca href=\"javascript:void%20function(){document.querySelector(%22.qu-zIndex--blocking_wall%22).innerHTML=%22%22,document.querySelector(%22.qu-zIndex--blocking_wall%22).style=%22%22,document.querySelector(%22.qu-zIndex--blocking_wall%22).nextElementSibling.removeAttribute(%22style%22)}();\"\u003EQuoraSkip\u003C\/a\u003E: Skip Quora-enforced 'login' popup by removing added elements and blur overlay.\u003C\/div\u003E\u003Cdiv\u003E\u003Cbr \/\u003E\u003C\/div\u003E\u003Cp\u003E\u003C\/p\u003E\u003Cp\u003ETo those who requested, don't complain now. \u003Ci\u003E(Abuzar :D)\u003C\/i\u003E I have shared it finally. More such tips will follow. Keep visiting! And I know you will. :wink:\u003C\/p\u003E\u003Cp\u003E\u003Ci\u003ERab Raakha!\u003C\/i\u003E\u003C\/p\u003E"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/2445926190904848113\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/10\/magic-of-browser-bookmarks-automate.html#comment-form","title":"3 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/2445926190904848113"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/2445926190904848113"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/10\/magic-of-browser-bookmarks-automate.html","title":"Magic of Browser Bookmarks - Automate Simple Tasks using JavaScript"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/1.bp.blogspot.com\/-zhkcEuKdf6s\/YHaaNpSIiJI\/AAAAAAAAFb0\/UCQ8ahc1MtMnTZjG0dG2g7g8v5ehugzqQCLcBGAsYHQ\/s72-w640-h360-c\/Bookmarklets.png","height":"72","width":"72"},"thr$total":{"$t":"3"}},{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-7073565971181060995"},"published":{"$t":"2020-02-29T01:40:00.000-08:00"},"updated":{"$t":"2021-03-12T04:46:51.096-08:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Android Apps"},{"scheme":"http://www.blogger.com/atom/ns#","term":"My Software Applications"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Programming"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Release"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Technical"}],"title":{"type":"text","$t":"Qaafiyah Expert (Android) - Release"},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/1.bp.blogspot.com\/-7tinrZ9Esy8\/Xlosa2_iLbI\/AAAAAAAAD4A\/tn_g0vE_4BsmxWK0kr-55cQUtbCc9PFCACKgBGAsYHg\/s1600\/Qaafiyah%2BExpert%2Bbanner%2B1024x500.png\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" data-original-height=\"500\" data-original-width=\"1024\" height=\"312\" src=\"https:\/\/1.bp.blogspot.com\/-7tinrZ9Esy8\/Xlosa2_iLbI\/AAAAAAAAD4A\/tn_g0vE_4BsmxWK0kr-55cQUtbCc9PFCACKgBGAsYHg\/s640\/Qaafiyah%2BExpert%2Bbanner%2B1024x500.png\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cbr \/\u003E\nLinks:\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cul style=\"text-align: left;\"\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.qaafiyah\" target=\"_blank\"\u003EDownload the app From Playstore\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/ur.shakeeb.in\/2020\/02\/qaafiyah-expert-android.html\" target=\"_blank\"\u003ERead Urdu version here\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/www.facebook.com\/sarbakafgroup\/\" target=\"_blank\"\u003EFacebook page (to get updates regarding my new work)\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/drive.google.com\/file\/d\/1axjHoY5MWn8B5KxSowRmTbeQzZI5OZUu\/view?usp=sharing\" target=\"_blank\"\u003EHelp PDF file (How to use this tool)\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.qaafiyah\" target=\"_blank\"\u003E\u003Cimg alt=\"Download Qafia expert\" border=\"0\" data-original-height=\"256\" data-original-width=\"256\" height=\"200\" src=\"https:\/\/freeiconshop.com\/wp-content\/uploads\/edd\/google-play-badge.png\" title=\"Download Qafia expert\" width=\"200\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\nQaafiyah Expert is a simple tool which contains\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Col style=\"text-align: left;\"\u003E\n\u003Cli\u003E\u0026nbsp;A rhyme generator, with support of diacritics, filter for Urdu poetic meters and 3 scripts for search. Works offline.\u003C\/li\u003E\n\u003Cli\u003E\u0026nbsp;A lightweight diary with offline \"save\" support.\u003C\/li\u003E\n\u003Cli\u003E\u0026nbsp;An online portal for awesome literary posts, updated periodically.\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ch2 style=\"text-align: left;\"\u003E\nFor those who were waiting for this\u003C\/h2\u003E\n\u003Ch3 style=\"text-align: left;\"\u003E\nWhy did it take so long?\u003C\/h3\u003E\n\u003Cdiv\u003E\nLike always, I'd list many reasons (excuses?)\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Col style=\"text-align: left;\"\u003E\n\u003Cli\u003EGod's wish.\u003C\/li\u003E\n\u003Cli\u003ELearning android development takes some time.\u003C\/li\u003E\n\u003Cli\u003EThe basic structure had been completed in September 2019, which I had had on my mobile phone. I used to suggest qawaafi to people asking for them using the tool. But I wasn't satisfied. At the time of \u003Ca href=\"https:\/\/www.shakeeb.in\/2017\/01\/qaafiyah-expert-by-shakeeb-ahmad.html\" target=\"_blank\"\u003EWindows software version\u003C\/a\u003E (in 2016) I was new in the programming world. Not a pro now either, but whatever I've learned in these years, I thought to improve at least few things in it and add few features of my own interest. So, the app has seen many phases before being released to the public. The basic version had the same options I'd put in Windows app.\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/1.bp.blogspot.com\/-m9FuVnuK3OY\/XlosuJ_sJnI\/AAAAAAAAD4E\/mIKLrswg6xkRkURncvn6mWEjStkuFQwkACKgBGAsYHg\/s1600\/photo6255993709623618090.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" data-original-height=\"1028\" data-original-width=\"708\" height=\"320\" src=\"https:\/\/1.bp.blogspot.com\/-m9FuVnuK3OY\/XlosuJ_sJnI\/AAAAAAAAD4E\/mIKLrswg6xkRkURncvn6mWEjStkuFQwkACKgBGAsYHg\/s320\/photo6255993709623618090.jpg\" width=\"220\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\nNow, those who used to constantly poke me via email or social media to provide the basic version at least, may say unspeakable things to me; but as I've said many times:\u003C\/div\u003E\n\u003Cblockquote class=\"tr_bq\"\u003E\nI have a constant urge to present the things in the best way possible.\u003C\/blockquote\u003E\nSo I delayed it. Although I've recently read in a \u003Ci\u003Egyaani's\u003C\/i\u003E article that this bug of perfectionism should be killed ASAP.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nOne more reason for releasing it late is that nobody likes to update the app too many times. So, changing few things and releasing an update would do no good. And Google PlayStore, MashaAllah, bombards you with questions in every release, making it further difficult.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ch2 style=\"text-align: left;\"\u003E\nRequests\u003C\/h2\u003E\nThe app is still in the dev mode, so if you find any bug or want something to be included in the next version, please leave a review. If the response is good, I'll try to roll out next release soon.\u003Cbr \/\u003E\n\u003Ch3 style=\"text-align: left;\"\u003E\nFew features in upcoming versions\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cul style=\"text-align: left;\"\u003E\n\u003Cli\u003EApp interface language switch, for those who don't know Urdu script (Complete Internationalization)\u003C\/li\u003E\n\u003Cli\u003EMeanings and thesaurus on word-click\u003C\/li\u003E\n\u003Cli\u003ETaqti (Poetic Meter calculation)\u003C\/li\u003E\n\u003Cli\u003EPoetry workshop\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv\u003E\nI've two requests for you. First, to report bugs if you find any and if you want any other feature to be included in this app (other than the 4 mentioned above) then comment on the Play Store's rating page.\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\nSecond, If you have an idea for a new app, go to \"online\" section of this app and submit your idea on \"Ek app aisi bhi.\"\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\nI've few app ideas of my own interest, have to finish them too. Remember me in your supplications.\u0026nbsp;\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\nShakeeb Ahmad\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\nFebruary 16, 2020\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\nTelegram: ShakesVision\u003C\/div\u003E\n\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/7073565971181060995\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/02\/qaafiyah-expert-android.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/7073565971181060995"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/7073565971181060995"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/02\/qaafiyah-expert-android.html","title":"Qaafiyah Expert (Android) - Release"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/1.bp.blogspot.com\/-7tinrZ9Esy8\/Xlosa2_iLbI\/AAAAAAAAD4A\/tn_g0vE_4BsmxWK0kr-55cQUtbCc9PFCACKgBGAsYHg\/s72-c\/Qaafiyah%2BExpert%2Bbanner%2B1024x500.png","height":"72","width":"72"},"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-9149682139850502731"},"published":{"$t":"2017-03-18T07:46:00.002-07:00"},"updated":{"$t":"2020-04-12T01:27:29.079-07:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Programming"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Technical"}],"title":{"type":"text","$t":"Programming Challenge #1: Add Up To Second Number"},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cspan style=\"font-size: large;\"\u003EHello programmers. I am starting a series of programming challenges for beginners here. I'll post the problems with some explanation, screenshot of the final output and a little bit of hint if it is really needed. Solve your problems using any programming language you are comfortable with.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Cspan style=\"font-size: large;\"\u003EHere goes the first problem.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cb\u003EProgramming Challenge #1: \u003C\/b\u003EAdd Up To Second Number\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cb\u003EDetails:\u003C\/b\u003E Write a program which asks users to input two numbers. Your task is to add all the consecutive numbers from first number to second.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003EExample:\u0026nbsp;\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003EInput 1: 1\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003EInput 2: 10\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003EAnswer: 55\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cb\u003EAdditional Task(optional):\u003C\/b\u003E Show the numbers being add.\u0026nbsp;\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cb\u003EFinal Output Screenshot: \u003C\/b\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cb\u003E\u003Ca href=\"https:\/\/1.bp.blogspot.com\/-qTnu-ZXwm8o\/WM1IMSFWpAI\/AAAAAAAAASw\/wQf_0n0d3mYfN3Mj1xhwPpV8M-hroNtxwCLcB\/s1600\/add%2Bup%2Bto%2Bsecond%2Bnumber.JPG\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/1.bp.blogspot.com\/-qTnu-ZXwm8o\/WM1IMSFWpAI\/AAAAAAAAASw\/wQf_0n0d3mYfN3Mj1xhwPpV8M-hroNtxwCLcB\/s1600\/add%2Bup%2Bto%2Bsecond%2Bnumber.JPG\" \/\u003E\u003C\/a\u003E\u003C\/b\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-size: large;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/9149682139850502731\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2017\/03\/programming-challenge-1-add-up-to.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/9149682139850502731"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/9149682139850502731"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2017\/03\/programming-challenge-1-add-up-to.html","title":"Programming Challenge #1: Add Up To Second Number"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/1.bp.blogspot.com\/-qTnu-ZXwm8o\/WM1IMSFWpAI\/AAAAAAAAASw\/wQf_0n0d3mYfN3Mj1xhwPpV8M-hroNtxwCLcB\/s72-c\/add%2Bup%2Bto%2Bsecond%2Bnumber.JPG","height":"72","width":"72"},"thr$total":{"$t":"0"}}]}});