Introducing cmus: The best Linux music player I have seen so far

I believe one of the things that made Linux, Linux is its terminal. Most Linux users (especially developers) prefer to use the terminal for all of their tasks. VIM is a good example. Most Linux developers prefer to use VIM while there are plenty of GUI-based code editors; because, it’s the editor you’ll fall in love with.

When it comes to music playback on Linux, people usually use apps like VLC or Rhythmbox. I know they’re all good; but, to be able to use them, you have to leave the lovely terminal environment 😉 I searched a lot over the internet to find a good music player for terminal and found cmus!

cmus-2.4.3-osx. Photo taken from: https://cmus.github.io/#home

In one sentence:

cmus is a small, fast and powerful console music player for Unix-like operating systems.

cmus supports nearly all popular music formats and it has a very cool user-interface since it uses ncurses to display song list and other information. It has a completely configurable keybindings and the good part is that the default keybinding configuration is very similar to VIM! For instance, you can use j and k to move and up and / to search.

If you’re a big fan of terminal based apps as I am, check their GitHub page, download, install, contribute, and enjoy 🙂

VIM Cheat Sheet: The editor you’ll fall in love with

Well… I have migrated to Linux. I was a Windows user for more than a decade and now a 4 month old Linux user. I learned a lot about Linux and its components in these 4 months.

One of the tools I really liked is the VIM editor. I know most of you are probably familiar with VIM but it was a surprise for me as a new Linux user. In the early days of moving to Linux, I installed Sublime Text editor. There’s no doubt that Sublime is one of the most powerful editors out there but when I got comfortable with VIM, decided to remove Sublime from my machine.

As you may know, VIM is based on shortcut keys. If you get comfortable with them, your text-editing speed will be boosted unbelievably. After spending a lot of time exploring VIM, I came across the idea of creating a cheat-sheet so I can easily memorize its shortcut keys. Although there is a very amazing website for this; but, what I wanted was a document that could be printed on a standard A4 paper so I can place it somewhere in front of my eyes. Something like this:vim_cheat_sheetI have created a PDF document that contains the most important (in my opinion) VIM shortcut keys and have printed it for myself. I thought that would be useful to share it with you as well. You can download it from here: VIM Cheat Sheet

Note: The PDF I have created does not contain all VIM shortcuts. I have picked some of the most important ones due to the limitation of an A4 paper. If you’re looking forward to a full list check out: http://vim.rtorr.com/

If you think there are other important shortcut I should have mentioned in the document, please let me know. I will post more about VIM editor in the future because it is one of the most exciting editors of all time 🙂

Update: Marco Hinz has done a great job creating a GitHub project that gives you Everything you need to know about VIM which covers almost everything about VIM. Check it out.

The way Windows 10 updates machine’s drivers is awesome

I am a Windows (10) fan and I am proud of it. I am telling this because these days most people I meet prefer to use non-Windows operating systems such as Linux and OS X. In fact, in the community I am dealing with these days, working with non-Windows operating systems is a way of showing geekness.

But I love Windows 10 and I am using it almost everyday and I am proud of it.

One of the cool things Microsoft has done in Windows 10 (It started to test it in Windows 8.1) is the way it updates your machine’s drivers. Previously, you had to visit a hardware manufacturer website to get the latest drivers for your machine but with Windows 10, you don’t need to do such a thing anymore. I think Microsoft negotiated with hardware manufacturing companies such as AMD, Intel, etc., and told them to send their drivers to Microsoft every time they released a new version so the driver updates can be shipped to users via Windows Update automatically.

The following picture shows that Windows Update automatically updated my graphic cards and printer drivers:

Windows Update updates drivers automatically

This way of upgrading has lot of advantages over the previous ways. First of all, it prevents the user from downloading a incompatible driver. Windows recognizes the model of each hardware and installs the appropriate driver. Second, since most Windows users turn the automatic update option on, they always have the latest driver. The latest driver you have, the more reliable your machine works. Last but not least, you don’t have to be worry about anything; it just works.

I know most of you may had bad experiences using previous versions of Windows; but Windows 10 is a very reliable OS and I highly recommend you to start using it if you haven’t yet.

A better cross-platform client for Longman dictionary

During past 7 years, I have always been into learning English; not only because it’s the language I really like, but learning a new language opens new gates into a new world with new people and new ideas.

Although English is a key language in worldwide communications, but if your native language is English, it’s also good to learn a new language such as French or Spanish.

When it comes to learning a new language, having a good dictionary is a must. For me, Longman dictionary is a good one. Because the dictionary is for learners (Built for those who are learning English) not native speakers, it has lots of examples and the definitions are very easy to understand.

When I’m using my Windows machine, I use its wonderful app. It’s one of the bests, in my opinion. But, when it comes to Mac, unfortunately, I realized that the app DVD doesn’t have any OS X app included.

ldoce_earthI Googled about it and suddenly came across an app called LDOCE5 Viewer. The app uses the Longman dictionary database as the source and acts like its client.In fact, it does things that the Longman official app itself doesn’t!

Once you launch the app for the first time, you will be asked to specify the Longman database. The Longman database is a folder in the official DVD called “ldoce5.data”. To be able to use the app, you need to copy that folder to a place in hard drive; then, specify that folder to the app. Once the data folder specified, the app starts indexing the dictionary data. It may take a few minutes to complete according to your machine’s performance. The app is also  available for Windows and Linux as well.

To download it visit its official website at: https://forward-backward.co.jp/ldoce5viewer/

Introducing GoldenDict: The best dictionary I’ve worked with so far

I’ve been a big fan of Babylon dictionary for a long time. During that time, Babylon dictionary helped me a lot to look up words and phrases from languages other than Persian.

Unfortunately, Babylon became useless for me since the release of version 10, due to some bugs it had; so, I removed it from my computer. Also, during these couple of years, I’ve moved to platforms other than Windows such as Linux and Mac; therefore, I couldn’t use Babylon even if it worked correctly.

Introducing GoldenDict

68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3833373734392f3330343230352f33383439656235342d393633372d313165322d396462382d3735363633663463343466392e706e67A few days ago, a friend of mine, introduced me GoldenDict and blown my mind. It is the best dictionary look up program I’ve ever worked with. It has a lot of benefits over other dictionaries; so, I decided to write a blog post to mention some of its features:

  • It’s completely free and open-source! This means you can use it as much as you want without even paying $1 for it. However, you can donate if you want. If you’re a developer, you can also contribute and make it even better.
  • It supports multiple dictionary file formats including Babylon glossaries, StarDict and others. Consequently, you can import all glossaries you had before! This is a very good feature if you’re a former Babylon user or want to migrate to GoldenDict. Actually this is a very important feature for me because, I’ve had some Babylon glossaries before and wanted to use them.
  • It has the Scan popup functionality. You can easily translate words even from other apps. As you may know, Babylon also has such feature but as I tested, GoldenDict word detection is much better.
  • It’s cross-platform; so, you can use it in nearly all of your devices. GoldenDict is available for Windows, Mac, Linux and even Android phones.

golden-dict

To download GoldenDict, please check out GoldenDict.org. As I’ve mentioned, GoldenDict is a free product and you don’t have to pay for it; but, if you think this project worth it, please make a donation to help making it even better.

The most essential apps I use everyday

Since I purchased my first ever smartphone which was an iPhone 3G, I started using some apps to help me get organized, learn more, stay in touch with my friends and family and have fun on my device.

During these four years I have used and tried a lot of apps and selected some of them to fulfill my needs. Nowadays, I can’t live without some of these apps. In this post I am going to share some of the most effective apps I use everyday. I thought this might be useful for you as well.

1. iPhone’s official Mail App

Mail appOne of the most important applications I use on my iPhone is the Mail app. The built-in iPhone mail app is not as feature-rich as some other third-party applications but I think its features are enough. It covers all of my expectations including the following:

  • It let me setup multiple accounts on it. Currently, I have setup my iCloud account and my main (i [at] ramezanpour [dot] net) account on it.
  • It supports signatures.
  • Its has a feature called VIP; so, you can add the most important people you’re communicating with in it. Email from those people will be shown bolder than others; also, they will be placed in a separate folder called VIP.
  • It supports all major email providers including GMail, Yahoo, AOL, Outlook and also Exchange.

2. Podcasts

Podcasts appOne of the iOS’s most unique features over Android or other mobile operating systems is the podcast. Podcasts app will let you have all of your favorite podcasts in one place. I usually connect my iPhone to my car’s stereo and listen to my favorite podcasts instead of listening to music.

Podcasts are available in a wide range of categories such as music, news, arts, education, science and technology. I have subscribed to some science and technology podcasts and listen to them when on my way to work or returning home. My wife also likes some of them; so we listen to them together.

3. Viber

ViberAlmost all of friends are using Viber nowadays. It’s the most popular messaging app in Iran. According to a report, more than 40 million Iranians are using Viber these days. Viber let me stay in touch with my friends and family at a very low cost. It’s not the best messaging app (I perfer Whatsapp messenger) but since most of my friends are using it’s difficult to find them on other messaging apps.

4. Skype

SkypeAlthough Viber covers all of my text needs; but, when it comes to voice and video messaging, Skype is by far the best option. The voice quality is awesome (Even with Iran’s bad internet service) and the service is almost free. I use Skype to talk to some of my friends who live overseas. Beside its mobile app, Skype is also available for desktop computers as I am currently using it in my Windows and Mac machines.

5. Evernote

Evernote“Getting used to productivity apps is always a very hard thing to do but once you get used to them, your life gets brighter.” – Mohammad M. Ramezanpour

Evernote is one of those apps I use almost everyday. Since I use Evernote I don’t use papers anymore. I use Evernote for taking notes and creating checklists. One of the good features of Evernote is the ability to share a note or notebook with someone else. My wife has created a shopping list in Evernote and shared it to me. Every time she needs something at home, she adds a new item to that list. We go shopping almost every week and purchase things according to that list.

6. DropBox

DropBoxDropBox is the best online cloud storage. I have been using SkyDrive (OneDrive) and Google Drive but in my opinion, non of them were as powerful as DropBox. DropBox is available in all operating systems. I use it in my iPhone, Windows and Mac devices. DropBox is very simple and easy to use. One of the coolest features of DropBox in comparison with other cloud storage apps is its “Lan Sync” feature which let users to share files in-between without using the internet bandwidth. all of the files will be transferred via local network.

I use some other apps but these 6 apps are very essential for me. What apps do use the most? Please share your list by commenting down below.

Hope it helps.

Introducing timeago: A jQuery library to update fuzzy timestamps automatically

You may have seen at least one of these timestamps in websites especially social networks:

time1

time3

These timestamps are very important and useful in all websites that time matters. But you may have wondered how to implement such a thing in your own web applications.

There are a couple of ways to do so. The first one is to implement this functionality server side. I’ve implemented a server side C# function to do it; but, there would be a very big issue: As the time goes on, the timestamp won’t update! The whole page needs to be refreshed! You may have use ajax to refresh the time but this method also costs lots of resources. The best place to do such a thing is client and that’s exactly what timeago does!

What is timego?

Timeago is a jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. “4 minutes ago” or “about 1 day ago”).

Timeago has lots of advantages over server side implementation I’ve mentioned above. Here are some:

  • It is very lightweight (About 8KB when not minified and about 4KB when minified and GZiped)
  • Runs on user’s browser; consequently, it won’t cost any server resources.
  • It can be used alongside caching techniques while it runs on client.
  • The timestamps’ values will update live so there’s no need to refresh the whole page or make ajax requests to update them.
  • It’s free and open-source!

How to use timeago?

Using timeago it very simple. Imagine you have a span element in your web page and you want to update the value of this field using timeago. The very first step is to use jquery.timeago.js file in your page’s head element. You also need jQuery library as well; so, add it too if you haven’t:


After that place your ‘span’ as following:

July 17, 2008

As you may have noticed that we put the real datetime we want to calculate from in the ‘title’ attribute. The final step is to add the following piece of javascript in your page:

$(document).ready(function() {
  $("span.timeago").timeago();
});

You’re done! The javascript code above converts all span elements which has “timeago” class.

How to download timeago

Since timeago is an open-source project, it can be found by its GitHub repository or its official website at: http://timeago.yarp.com/. Don’t forget to check out its website for more examples.

This library was very useful for me. Hope it does the same for you.

Set default sharing accounts in Buffer

I love Buffer services. It comes very handy when you want to share some posts with your friends on social networks. Some people are always have their social network websites’ tabs open in their browsers, whereas others (like me) specified a limited time to check their social networks.

I have added some of my favorite blogs and websites to my Feedly account which I read almost everyday and I like to share them if I find something interesting. Buffer helps me not to share all of them as a same time. It’s Buffer’s job:

Buffer is a great tool that will help you in two main ways. First, you can write a bunch of posts at one time, and choose which social profiles to send them to, and then Buffer will spread them out throughout the day or week so that you don’t have to be at a computer all the time in order to have a social media presence. Second, since we shorten your links for you, we are able to provide more analytics than if you just were to post to Twitter or Facebook directly. For example, we can tell you exactly how many folks clicked on each of your links.

Buffer has extension for all main browsers including Firefox and Google Chrome so it’s much easier to share links you like.

The problem comes to life when you press the share button. The following window will be displayed:

Buffer Share Sheet

As you can see in the above picture, I’ve added three of my social accounts; Facebook, Twitter and LinkedIn. I can click on each one if I wanted to disable sharing for that specified link; but, sometimes you I forget to do so. In most cases, I want to just share the link to my Twitter page. I don’t want to send technical posts to my Facebook page because most of my family and friends which are not developers don’t link them at all.

You click “Add To Queue” without choosing which social network you want to share that link to; Accordingly, it will automatically add that link to all your specified social networks. However, you can remove a link from a specific social network anytBuffer Dashboard Pageime by going to your Buffer account, there’s a very simple way I’ve found on my Buffer account today which can be used to set the default enabled social networks!

To so so, just go to your Buffer account page. All of your linked account are listed there as shown in the picture at right. As you may have noticed, There are check marks on the left side of each account which are all checked by default. These are default sharing accounts’ indicators. You can simply uncheck the accounts you don’t want to be enabled by default in the Buffer’s share sheet. Simple, huh!?

I highly encourage you to try buffer if you use social networks and share links with your friends. Buffer is free but you can upgrade to awesome to get the most of your Buffer.

Recordium is now on AppStore top charts!

Recordium is one of the apps we’re working on at Pichak. It’s getting more and more popular everyday, because users love its unique features. Yesterday we’ve celebrated its first birthday. One year ago, the Recordium released to help users record their moments. It makes it easier to record your voice memos and annotate them at the same time.
10359030_774857019211516_3250373144789554679_oSince it’s Recordium’s first anniversary, we decided to make it Free for a very limited time (It’s still free as I’m writing this post). Hurry!

From the first hours of this promotion, the app rocked the store! We hit number 1 (in productivity and business categories) in some countries including Australia, Germany, and more! Yeah this is pretty impressive!
The following is the latest top charts from the App Store:
14 - 1
I think it’s a good time to say that I am proud of working with such talented people. The team at Pichak spent months to develop something lovely for the users.
Lots of new cool stuff are about to happen in Recordium including lots of new features and improvements. By the time, we’ve released Recordium Mini, a compact version of Recordium Pro for those users who just want to highlight their voices. Lots of good news are coming soon. Stay tuned 😉

Find out how your customers interact with your mobile apps with Flurry

It’s about three months I’m developing iOS applications for Pichak. When developing apps that going to have a lot of users and want your apps to be successful, you need to know how users working with it.

Gathering usage data is a pretty easy task in web applications because users must visit your website which is hosted on your server; therefore, you can get almost any kind of data you need. On the contrary, when it comes to mobile apps, gathering such data is a pain in the neck; but, some companies have established handy tools which help you get usage data much easier. There are a lot of services out there you can use but I really recommend you to use Flurry!

Introducing Flurry Analytics

Flurry Analytics is a FREE service you can use to understand how your customers interact with your mobile applications. Flurry has a lot of features (all of them are free to use) and I want to mention some of its important features from in my opinion:

  • It’s Free (Again)!
  • It support all major mobile operating systems like iOS, Android and Windows Phone. It also supports Blackberry, HTML5/Hybrid Apps/MobileWeb and JavaME
  • It supports crash report! So when you app crashes the Flurry service send you the error! So you know exactly when, where and how the error happened.
  • It support Geo-location; so you can see where your users coming from. This feature is very useful. You can use location data to plan for your app’s future and add more languages to it based on these data.
  • It’s very easy to implement. It takes about 5 minutes getting things ready and about 30 seconds to implement it in each part of your application.
  • It works asynchronously so your customers won’t realize it.
  • It supports SSL encryption so you can be sure usage data won’t be stolen.
  • It still sending you data even if the app is in background.
  • Gathered data can be categorized by age, gender and more.

How to get started

The first think you need to do is to sign up for a free Flurry account. Then, you can submit your app and it gives you an API key. In fact the API key is almost all you need. Depend on your app’s platform you can download the SDK and adding it to your application.

I used the iOS version of the SDK and it was supper easy to use. All I needed to do was to add Flurry’s library and Flurry.h header file to my application! Boom! Everything was ready to start!

I hope you use this service and enjoy and I do.