Announcing AUT’s 3rd Linux Festival

Third series of AUT’s Linux Festival has been announced by Student Scientific Committee of Computer Engineering & Information Technology (CEIT) department. The festival at Amirkabir University of Technology, is attracting lots of Linux fans and geeks every year and includes separate programs for beginners, intermediate users and experts.

سومین دوره‌ی جشنواره‌ی لینوکس امیرکبیر در روزهای ۲۸ و ۲۹ اردیبهشت ماه سال ۱۳۹۰ در محل دانشگاه صنعتی امیرکبیر برگزار می‌شود. این جشنواره توسط انجمن علمی دانشکده‌ی مهندسی کامپیوتر و فناوری اطلاعات دانشگاه صنعتی امیرکبیر سازمان‌دهی شده و برای علاقه مندان و کاربران متوسط و پیشرفته برنامه‌های جداگانه‌ای در نظر دارد. برای ثبت نام و شرکت به این آدرس مراجعه نمایید. برنامه‌ی جشنواره بدین قرار خواهد بود :

ارایه‌های روز اول

چرا لینوکس ؟
کارگاه نصب
معرفی محیط گرافیکی
برنامه‌های مفید و کاربردی
نسخه‌های مختلف لینوکس
ساختار سلسله مراتبی فایل‌ها

ارایه‌های روز دوم

معرفی خط فرمان
لینوکس و شبکه
شاید برای شما هم اتفاق بیفتد !
تولید برنامه‌های وب در لینوکس

ارایه‌های موازی

شرکت پیشتاز پردازش پارس
گروه کاربران لینوکس تهران Tehran-LUG
گروه کاربران نرم‌افزار‌های آزاد

AUT's 3rd Linux Festival Poster

مطالب مرتبط :
دومین دوره‌ی جشنواره‌ی لینوکس امیرکبیر

Posted in Believe Me | Tagged , | Leave a comment

The Monkey’s Paw iPad App

Monkey's Paw iPad App

It’s a while we are developing an interactive book application framework for iPad and the first book in these series is now right on App Store. Monkey’s Paw is a horror short story by W.W.Jacobs which was published in 1902. You can watch a demo video here.

The app was created in a true global collaboration between minimoko, Beware of the Art and Turned On Digital. Don’t hold us responsible if you get what you wish for.

Posted in Believe Me | Tagged , , , | Leave a comment

Android and iOS – Core Features and User Experience

Android Logo Green Gradient

Switching iPhone 3GS to Android made a chance for me to live with the latest hardware released for this mobile operating system and get an overall impression over it. I got HTC Desire (the successor of Google Nexus that you might have heard its name). Here is a quick list of these differences I found in terms of User Experience, Application Market and Core Features, while working with these two platforms. There are certain aspects, which are different in these two platforms and I’m not covering all of them in this post. Refer to the last section.

Yes, It is Linux, But it is not !

Looking back to the definition, Linux is the kernel which is powering up the system, managing resources, etc, not the userspace tools. But referring to the conventional definition, I was looking for standard Posix tools, a package management system, OpenSSH server, etc. Although it’s famous that most Linux users are kinda Hackers, and living in a dark Garage ;), It’s really odd that there are no OpenSSH ports for this operating system. The only thing you may find is a Dropbear port, compiled and ported for this architecture, but I failed to bring it up.

On the other hand, iOS has lots of these tools available using an APT based package manager called Cydia and installing OpenSSH is the first step to getting full access to your embedded MacOSX. Sometimes I forget whether I’m working with my iOS shell or the Debian shell on my PC.

Obvious Features are not there !

VPN

VPN stands for Virtual Private Network, which is kind of network connection when you want to access a secure tunnel to your workplace or another server in the internet. Android implementation of VPN protocol (specifically PPTP) is incomplete, since it fails to detect kind of encryption in certain scenarios and the only solution to this problem is currently to switch off your VPN encryption and surf in an insecure manner.

HTTP Proxy

Default android operating system doesn’t include any option to configure HTTP proxy server settings. Although this might seem not to be a critical feature, but it makes the phone almost useless in an institute or university which shares the internet via an HTTP proxy server. Certain distributions such as Galaxy, have patched this issue and include the configuration dialog.

J2ME apps

Android’s userspace has been built on JAVA technology, hence the java runtime in android is called Dalvik and doesn’t provide any backward/cross-compatibility with J2ME environments. J2ME is being supported on many devices and has been made an standard for many institutions, to provide their services to the customers via this technology. Although J2ME is not supported by iOS, but it is possible to install a Java runtime environment, when you jailbreak the device.

Gmail Password

Android has a centralized synchronization system and it provides your account credentials to the apps, which need to synchronize with your google account data. This could be considered as a major success in terms of integration to Google, for those who live in the Google world. On the other hand, it happens to change your google account password. But wait, do you count the ability to change your current password as an obvious feature ? of course yes, and there are no direct way to change your password.

Applications start showing authentication errors, right when you change the account password, and there is no way to configure and set the new password on the phone. Android makes you to perform a Factory Reset, to enter your new data. In certain models, android may pop up a dialog box to change your password at the next reboot, but it did not happen with my HTC Desire. I tried to fetch and modify a database file called accounts.db and remove the old authentication tokens. There’s an option to change your email account’s password in a few taps in iOS platform.

App-Store versus Android Market

First point I noticed was that, Android market is restricted for certain carriers and internet addresses. I failed to access using my home network and carrier, but there are hacks to resemble you’re on the right carrier (using MarketEnabler) and on the right IP address (using a VPN connection).

The first point you face, when browsing the android market for the first time is that, there are awesome apps that are free while their equivalents in the iOS market are being provided as paid apps. But on the other hand, there is a high degree of redundancy in the apps functionality, and 3 in 4 apps you download in android, doesn’t do what you want.

User Experience

iPhone4 Default Homescreen / DashboardiOS provides an statically aligned dashboard, in which you can access to your critical apps in the bottom bar. The critical apps bar is always visible, while you can swipe your finger to change the dashboard icon set to the next page. There are no live or dead widgets. There is only an static wallpaper since iOS 4.0 plus the icons to launch apps. iOS automatically applies a nice glassy effect/overlay to the icons, which makes any amateur icon stylish.

Android provides a more flexible dashboard including icons, live wallpaper and live widgets. Widgets are one of successful ideas in the Android environment, which allow you to access the current data (weather, contacts, messages, …) right on your desktop. You’re free to align the application shortcuts (icons) and widgets anywhere beside each other.

Android 2.2 (FroYo) on HTC Desire

Comparing to the static wallpaper in iOS, there is a possibility to choose an animated (AKA live) wallpaper program. There are some cool defaults wallpapers in the default HTC distribution. It is also possible to download and install new live wallpapers. For example you might install a free Snow Flakes wallpaper for your background. The wonderful fact about android wallpapers, is that they are battery friendly and does not drain the battery so fast.

Animations are more smooth and pleasant and You’ll soon note that keyboard typing speed was a little bit more in the iOS, but they are both convenient for daily tasks.

Language and Localization Support is Poor

Android doesn’t come with any Right-to-Left scripting support, although it has complete translation for some famous western languages. There are long threads on Google support channels for adding this feature, but no idea when this feature would become available in the main branch of operating system. (There are customized brands such as latest Galaxy phone which include RTL support out of box)

Jail-breaking (AKA rooting) the phone did not last more than 24 hours, until I download latest firmware and tools available. In fact it was much more simple than, iOS equivalents. Upgrading the phone to the latest community modified Froyo (Lambros ROM), fixed rendering for Persian language and had a Persian keyboard as a bonus too 🙂 !

There are more …

There are lots of aspects which I have not discussed here. Freedom might be an issue with closed source operating systems like iOS. It could be also indicated in case Market and application approval process. On the other hand, freedom might be discussed in the application level, which you’re able to swap your core applications, or just high level apps.

Software development is also an issue, in which mobile developers might be interested and there are lots of things to compare. From development tools to the language, performance and design guide lines, …

Lets also do not forget that, these operating systems are running mostly on cellular phones and they should provide a certain amount of flexibility and usability in that area. There some functions which you might miss in one of them, such as call blocking, message blocking and the way that device alerts you.

Posted in Believe Me, Technical Docs | Tagged , , | 1 Comment

Persian Poems Library is Live !

We recently released a new version of Persian Poems, called Persian Poems Library which supports In-App-Purchase and it’s Free ! You can use it to browse the bookshop and buy and read your favorite poems right on your iPod, iPhone and iPad.

Here’s a quick look at the features :

– Currently there are more than 20 books available in the shop, and more on the way.
– Browse or Search for poems
– Save your favorites
– Change text size
– A small biography of each poet is also available in each book
– Completely in Persian (Farsi)
– Share verses via email, Twitter and Facebook
– We’re planing on adding 10 new books each month

Although it is less than a week that it has been released, we’re impressed by the high download rate. Here’s a few screen-shots of the app :

At current stage, popular books are :
1. Hafez Collection
2. Ferdowsi’s Shaahnaameh
3. Bustan (Flower Garden) of Saadi
4. Masnavi Ma’navi
5. Divan e Shams
6. Parvin’s Poem Collection

If you’re a fan of Persian Poems too, give it a try ! 😉

Posted in Believe Me | Tagged , , , | 3 Comments

Fix Macbook Keyboard and Touchpad issue on Ubuntu

Keyboard functions have major functionality on operating systems other than MacOSX. Soon when you install Ubuntu on your Macbook, you’ll notice different problems from default keyboard function keys behavior (which needs Fn key to be hold) to extremely slow touch-pad. Most of issues and their solutions are described on the Ubuntu Macbook wiki page. But recent kernels have had some modifications that parameters described over the net, do not cover how to fix the issue with newer kernels. The old way of fixing keyboard was to add an option to Human Interface Device (HID) module of kernel to switch function keys mode. For example you might add the following contents to /etc/modprobe.d/functions.conf :

options hid pb_fnmode=2

Replace hid with usbhid for kernels older than 2.6.20. But none of them worked for my Ubuntu 10.04 Lucid running a 2.6.32 kernel. In recent kernels, Apple HIDs have a separate kernel module named hid-apple and the parameter has been changed to fnmode. Knowing these changed I tried to change the parameter by providing fnmode parameter via modprobe just like before, but failed. So to fix keyboard issue I used /sys/ interface to change fnmode parameter of hid_apple module.

root@Seeb:/home/ali# echo 2 > /sys/module/hid_apple/parameters/fnmode

Put this in your startup script /etc/rc.local before exit command, so that the issue gets fixed automatically on each boot. If you don’t know how to edit the file using root priviledges, that’s easy ! Press Alt+F2 and type the following command in your Run dialog :

gksudo gedit /etc/rc.local

For you touch-pad speed issue, all you need to do is to install gsynaptics (qsynaptics for KDE guys) package, open Touchpad Preferences from System > Preferences > Touchpad, and increase the newly shown parameters “Min Speed” and “Max Speed”:

Posted in Believe Me, Technical Docs | Tagged , , , | Leave a comment

Get Your Interactive Reverse Shell on a Webhost

Sometimes you purchase a web host and the only thing you have to control it, is an ftp account. For those familiar with unix-like shells, it would be really cool to have an SSH session on your account, but most of web hosts don’t allow this option. It makes the life much easier for maintaining the files and permissions.

First step is to investigate whether your php service bans the functions to execute a process or not. I’m talking about the exec and system and popen function series. You may write your own test or install a php script called “PHP Shell”. PHP Shell receives the shell commands through the web browser and executes them and finally delivers the output right at the browser window. There are lots of php shells out there. I used this one developed by Martin Geisler. Download one of them and upload it using your ftp account.

For simple operations, you can get an interactive shell using GNU netcat (Note the GNU word, there are lots of other versions and most of them do not support executing commands). If you run the following command on your machine, it would create a simple tcp listener on an specific port :

netcat -l -p 8999 -v

As you see, we have provided the verbose option to get notified when some one connects to your listener. Then by running the following line, we can the simply connect from the phpshell to our local listener and receive a shell :

netcat my.pc.ip.address 8999 -e “/bin/bash -i”

The above netcat command will connect to your pc at home and execute an interactive bash shell. At this stage you have a command and see the resulting shell (i call it semi interactive). Soon you’ll notice that special terminal commands such as Ctrl+D, Ctrl+C and arrow keys don’t work as expected.

We’ll use socat to overcome this problem. socat can connect almost every two streams you find in the world. From files to sockets, Terminals to udp connections, process output to tcp connection and it supports SSL connections too. But it is not installed on most distributions by default. So the first step is to get the source and compile it. We need it both on our local pc and on the web server. Well, the pc part is easy, but for the web server side you should first find out that whether the build tools (compiler, make, etc) are installed on the web server or not. Test it simply by running g++ and make in your php shell. If yes, you’re all set and follow these steps to get it running :

  1. run wget http://www.dest-unreach.org/socat/download/socat-1.7.1.3.tar.gz
  2. extract the file using tar -xf socat-1.7.1.3.tar.gz
  3. cd socat-1.7.13
  4. ./configure
  5. make

if everything went smoothly and fine, you would have the socat binary right under the socat-1.7.13 folder. Note that if your web host doesn’t have the build tools installed, you should compile the package locally and upload the binary file. The final part is to setup the listener, this time using socat and connect to it from the webhost, run the following command to get the listener :

socat file:`tty`,raw,echo=0 tcp-listen:8999

and run this one from the php-shell to get the terminal.

./socat tcp-connect:my.pc.ip.address:80 exec:’bash -li’,pty,stderr,setsid,sigint,sane

The first socat command, connected a tcp socket (which is yet listening) to your current TTY and second one, connects the bash process to your tcp listener. Now, you have a fully functional TTY Terminal connected to your account in the web-host. Almost all terminal commands work and you can run vim, nano, screen and Midnight commander 😎 . There are few differences between an SSH session and this reverse shell. The most  important ones are :

  1. Your session is not encrypted, you may use SSL capabilities of socat
  2. SSH automatically forwards some of useful shell variables, you may set them your self or put them in the .bash_profile or .bash_rc of the web hosting account, such as
    export TERM=”xterm-color”
  • For simplicity purposes, you may put the second socat command line in a new php script to avoid using php shell each time. Note that you should either secure your php shell or delete it when everything finished to avoid others, access your account.
  • Some web servers run using a different user id than your current account. It would cause that you don’t have permission to create and edit files using the php shell. In such situations, creating a world wide writable directory (Enable All Permissions for All) would do the job.
Posted in Believe Me, Technical Docs | Tagged , , | 7 Comments

Jailbreaking iPhone, Now Legal !

The US government on Monday announced new rules making it officially legal for iPhone owners to ‘jailbreak’ their device and run unauthorized third-party applications, as well as the ability to unlock any cell phone for use on multiple carriers.”

The EFF has further details on this and some of the other legal protections granted in the new rules.

Posted in Believe Me | 3 Comments

Experimental Write Support for Ext2 on Mac

Userspace Filesystem Drivers are becoming more and more popular since they’re portable and have less headache of platform specific filesystem driver issues. For example, NTFS-3G project provides the full read/write support for NTFS under Linux and MacOSX while living in userspace.

I recently discovered an open source project called “fuse-ext2” which is an implementation of Ext2/Ext3/Ext4 filesystem driver in userspace. Before this one, there was an ext2-only native kernel extension (kext) implementation. So I had no write access to my Ext3 and no read access to Ext4 file-system at all.

To use and enable experimental write support for your Ext2 partition, follow these steps :

  1. Download and install NTFS-3G Package which includes FUSE libraries.
    AFAIK NTFS-3G has been renamed into Tuxera NTFS and is a shareware now. But any way you can download the old GPL version here. it works in both Leopard and Snow Leopard.
    .
  2. Download fuse-ext2 package
    .
  3. Use Disk Utility to un-mount current Ext2 filesystems if there are any
    .
  4. Remove any old filesystem drivers for ext2 from /System/Library/FileSystems (it was ext2.fs for me)
    .
  5. Install fuse-ext2 package
    .
  6. Since write support is experimental, it is not enabled by default. To enable it, open /System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util for edit while having super user privileges.
    .
  7. Edit the OPTIONS variable at line 207 from
    OPTIONS="auto_xattr,defer_permissions"
    to
    OPTIONS="auto_xattr,defer_permissions,rw+"
    .
  8. Open Disk Utility and choose Mount for your filesystem and have fun !
Posted in Believe Me, Technical Docs | Tagged , , , | Leave a comment

Movie Buff – iPhone Application – Coming Soon …

New ‘Ultimate Movie Buff‘ iPhone app is coming your way! Many loved the original and asked for more questions and categories and here it is. We have teamed up with ITN to bring ‘Ultimate Movie Buff’ iPhone app to you, all with videos and almost 5,000 questions.

Play, challenge and  boast on Facebook and Twitter. Don’t forget to submit scores to our global high score, so we can see who is the official Global Movie Buff!

The app is set to be released on the 12th of May.

Posted in Believe Me | Leave a comment

How to Bypass Source-Forge Country Blocking

SourceForge Country Blocking Download Forbidden  We cannot send this file to your location. Please visit our our T7 page Source-Forge, The huge open-source software repository recently has banned some countries from downloading free and open-source softwares from their servers. However there’s a quick trick which you can download the files directly from source-forge mirrors, bypassing that IP address check.

Source Forge Download PageYou can click on the file you wanna download inside the “Files” section and take care when the following page appeared press ESC key to stop loading the page.

Source Forge Download LinkNow right-click on “direct link” and Copy the link address and Paste it into your address bar. It should look like this :

http://downloads.sourceforge.net/project/openproj/OpenProj%20Binaries/1.4/openproj_1.4-2.deb?use_mirror=surfnet

The last part, marked as red, shows the mirror you’re going to download from. Turn the URL into something like this :

http://surfnet.dl.sourceforge.net/project/openproj/OpenProj%20Binaries/1.4/openproj_1.4-2.deb

And it will download the file directly. In addition, some mirrors are not accessible because of routing path problems. I usually use “kent” as my mirror.

Posted in Believe Me | Tagged | 10 Comments