Spiga

‘ software ’ category archive

Netbeans review

December 15, 08 by Gabi Solomon

There seems to be quite a few talks about netbeans these days. A lot of people blogged about it and sayd its the next big thing or something. I personally tested it a while ago, like 4-5 months i think, i dont remember exaclly what made me drop it so i said i must try this new version to see what all the fuss is about.

Now before i start, i want to give you a heads up :) . I am a big fan of zend studio, (am using 5.5, hate the 6 series) and all its features, so when i test a new editor i tend to compare it to zend. I know its not free and it really inst the cheapest editor, but i was lucky enough (or good enough, if i wasn’t this modest) to win it as a prize at the Innovation Award on phpclasses.com.

Now back to NetBeans.

The first thing u should know is that its free. And this always counts as a big plus for any software.

As far as the interface is concerned, i like very much. Its very intuitive and simple to use. You have the general layout with projects on the left, content editor with all the basic features: tabs, sintax highlight, php code assist.
The first plus for netbeans would be the support for html, css, javascript and all the major javascript frameworks. Wich for some people count very much. This is something i admit i miss in Zend. There is a small support for html but that is it.

Another cool feature are the snippets (they caled them templates), this is when you tipe in class and it can automplete a basic class code for you. This templates can be edited so you can add any code snippet that u use very often here for faster writing.

I found that it has the functionality i didnt find in other editor except zend before. Things like :
- code assist for you own functions and classes
- really good code folding (some IDEs tend to get confused and have bad code folding)
- opening the file that contains the function/method on CTRL+click on the name (or any mouse + keyboard combination)

via http://codeutopia.net/

via http://codeutopia.net/

Altough some might disagree about the importance of these functions, i think they are crucial when working on big projects. I tend to forget where a function is on my projects after a while of not working on it, much more when it comes to projects running a script that is not coded by me. So the persons that don’t think that is necessary … try modifying lets say a magento powered store. Lets see how you find where a function is declared, and how much time you loose on this task.

So all these put together really made me think of switching to netbeans.
So i really gave it a try and started to use it to code a project.

I found that it is really great to work with, and personally it seemed a little faster then zend on loading times (sometimes zend would freeze a little on ALT+TAB).

Also found new features that i didn’t find in Zend, that really were nice to have:
- Refactoring ( you can rename a variable or a method in your class and it gets renamed whereever its used in your project )
- ToDo list ( it has a small tab where it parses the files for TODO comment lines and shows them in that tab)
- phpdoc comments code assist
- a really nice debuger that integrates with Xdebug
- code assist offers a link to php website for the php functions
- support for CVS, Subversion and Mercurial

The bad side

At this point i was 95% convinced of switching to netbeans. But then it let me down. The Ftp support really sucked. This is another must have feature for me.
I am used of working on remote servers, dont really enjoy working localy. So i want a verry good FTP client in my IDE. I enjoy the way Zend has done it. You just add a ftp server and your done … you can edit the files at will as if they were localy, you dont care how he downloads them makes the a temporary file etc. As soon as you hit Save the files gets uploaded to the server.

The way that netbeans does it is by downloading all the files localy at first, work on them locally and when you hit RUN in the IDE the ones modified gets transferred to the server. Wich might work when your developing a project on your own … but when you develop with a team its just not going to work. Or even if your alone, but you just want to do some quick modification to a website that is online, its going to take a while to setup the project in netbeans.

I found a workaround to this problem, you could use an automatic syncronization tool like Fling to do the synk between the files online and the ones locally. But you must be carefull how you setup it so you don’t overwrite others coworkers modification on the project.

Another smaller issue in netbeans is the file path. If your working on a file it doesnt show you the path of that file. So you dont know on wich file your actualy working since many times files have the same names either in diferent components of the same project or you can mistakenly edit the same file from a diferent project. It does display it as a tool tip on the tabs name but the best way i see this done is in the application title bar.

Conclusion

I agree that Netbeans is a great IDE and it has a lot of features, even ones i cant find in Zend, and if your a javascript developer thant this would be right for you. But until they redo the FTP client or someone writes a better FTP plugin, i cant use it. So i am stuck with Zend again :D
Altough i will be following the evolution of netbeans and maybe switch when they will have a better ftp support.

Cheers

using Zend Framework Language component

by Gabi Solomon

Today i will continue the series of articles on the zend framework and i am going to talk about how i come to use the language component from zend.

The way i decided to go with it is by having a controller plugin that starts the language component and also detects the language.

But first thing first. We need to make the url to allow us to change the language. And to do that i added a new rule in the bootstrap file:

PHP:
  1. $route = new Zend_Controller_Router_Route(
  2.             ':language/:controller/:action/*',
  3.                 array(
  4.                     'language'   => 'en',
  5.                     'module'     => 'default',
  6.                     'controller' => 'index',
  7.                     'action'     => 'index'
  8.                 )
  9.             );
  10.         $router->addRoute('lang_default', $route);

This rule will produce urls like:

http://www.domain.com/en/controller/action

http://www.domain.com/es/controller/action

I decided to go with this type of URL instead of caching or storing the language in the session to not have google consider our pages as duplicate content. I have read that it better to go with subdomains (ex: http://en.domain.com/controller/action ) that with directories but for now i will do it this way.

Now that we are still in the bootstrapfile, we will also add our plugin:

PHP:
  1. Zend_Controller_Front::getInstance()->registerPlugin(new GSD_Controller_Plugin_Language());

ANd now for the final touch the plugin:

PHP:
  1. <?php
  2.  
  3.  
  4.  
  5. /**
  6. * Front Controller Plugin
  7. *
  8. * @uses       Zend_Controller_Plugin_Abstract
  9. * @category   GSD
  10. * @package    GSD_Controller
  11. * @subpackage Plugins
  12. */
  13. class GSD_Controller_Plugin_Language extends Zend_Controller_Plugin_Abstract
  14. {
  15.        
  16.     public function routeShutdown(Zend_Controller_Request_Abstract $request)
  17.     {
  18.        
  19.         $locale = new Zend_Locale();
  20.        
  21.         $options = array('scan' => Zend_Translate::LOCALE_FILENAME);
  22.         $translate = new Zend_Translate('gettext', Zend_Registry::get('siteRootDir') . '/application/languages/', 'auto', $options);
  23.        
  24.         $requestParams = $this->getRequest()->getParams();
  25.         $language = (isset($requestParams['language'])) ? $requestParams['language'] : false;
  26.                 if ($language == false) {
  27.                      $language = ($translate->isAvailable($locale->getLanguage())) ? $locale->getLanguage() : 'en';
  28.                 }   
  29.         if (!$translate->isAvailable($language)) {
  30.             throw new Zend_Controller_Action_Exception('This page dont exist',404);
  31.         } else {
  32.        $locale->setLocale($language);
  33.             $translate->setLocale($locale);
  34.             
  35.             Zend_Form::setDefaultTranslator($translate);                                
  36.    
  37.            
  38.             setcookie('lang', $locale->getLanguage(), null, '/');
  39.             
  40.             Zend_Registry::set('Zend_Locale', $locale);
  41.             Zend_Registry::set('Zend_Translate', $translate);
  42.         }
  43.     }
  44. }

A few explanations on the code.
I am using gettext adapter with auto mode ... witch will basically crawl the language directory to detect what languages can you support. I also use it conjunction with Zend Locale and at the end i store the in the Registry.
Storing Zend translate in the registry will enable you to use it in the view in a very easy way using a built in helper.

Using translate in you controllers

PHP:
  1. $this->view->title = $this->view->translate('default-register-index-title');

Using translate in you views

PHP:
  1. <?php echo $this->translate('default-register-index-title'); ?>

As a note i am not using the full text for translate i am using keys that have a naming conventions like "module-controller-action-message". I find it much more easier then putting the whole string and also much more easier to maintain. Imagine if you misspelled a string, or want to modify it ? you will then have to modify it every in your code.

That is basically it.
Cheers

Update:
I have also published this plugin on phpclasses, you can find it here.

Automatic FTP Uploading & Synchronize

December 14, 08 by Gabi Solomon

The problem

If you are developing or using remote files you might be interested in services like dropbox witch allow you to copy a file in a folder in your computer and have it uploaded to a remote location. I personally love dropbox and usit as a back-up & sharing that i can access from multiple locations. I store my password manager software on it for example :)

But services like dropbox dont solve all your problems since sometimes you might want to sincronize to a location of your choise, like a FTP server.

This really comes in handy when you develop web application on a server you installed on your computer. I personally dont do it because of 2 reasons:
1. i have to remember to upload the copy to the remote server
Cant really show the client from my computer or have it stored on a stick with a portable webserver.
Also, having the last copy online is good when you might login and do modifications from multiple computers.

2. compatibility issues
There is always the possibility of the application working on my computer and not on the server. This is both due to the difference in OS but also in the serves configurations.

But i can see the advantage of having application developed locally. The most important would be speed ( saving files and viewing the website ), also not depending on the internet connection ( yes, e i get that sometimes, at night, probably from all the guys logging in to download torrents & porn ).

The solution

Well i recently discovered a really handy piece of software that solve my first problem. Its called
Fling FTP Software and is a powerful ftp program that allows you to synchronize a local folder with an remote one by using FTP.

The cool feature about it is that it integrates really well with your Windows explorer.

Also you have several options of synchronization, including sync between hardisks, network folders and flash sticks.

The way fling works is you setup rules for each folders you want to sync.
This is done in 2 steps:
1. You setup the source and destination folder

1. You setup the scanning options
Here you have the options of telling fling when you want the transfers to be executed and in which way. You have options to do it manually, automatically or at preset intervals. You can also specify witch is the primary source ( when files are conflicting witch one to keep )

I find this software really useful and another cool feature about it : Fling is completely free.

Download Fling FTP Software 2.02

Cheers

10 Windows Application Launchers reviewed

October 25, 08 by Gabi Solomon

Although i like try all geeky application that there is, i must admit that before this article i havent even saw some application i found while researching for this post. It all started when victor stanciu pointed me to an application launcher called launchy ( details below ). And i thought this is a verry cool way of keeping your desktop clean and also increase productivity. So i decided to do some research and see what similar apps there are out there.
There are not ordered in a specific order, just in the order that i found them.So here it goes.

1. Launchy

Launchy is a free utility that has both windows and linux suport and it is one of the most popular application launcher out there. It will index the programs and shorcuts from any location on your computer ( ex: start menu, desktop etc.) and can launch them with just a few keystrokes!
It also has shortcuts for your bookmarks or you can use it to faster search on sites like google and wikipedia.

Compatible with Windows Vista

2. Keybreeze

Keybreeze is another verry cool aplication laucher, it is light weight ( only 3MB ) but it is full of features, it isn't just an application launcher, it can do a lot more then that.The feature I liked most is the option to open multiple targets i.e. you can open multiple tasks in one go. You can use KeyBreeze to make sticky notes and can set reminders. If you use Skype, you can type “c ” to call someone.

Also its portable. :D

To list a few of its features :

  • Open files, folders, and websites.
  • Search your computer.
  • Search websites.
  • Perform system tasks.
  • Control windows on your screen.
  • Paste custom text into a text field.
  • Automate actions.
  • Create notes; set reminders.
  • Launch plug-ins.

To see it in action go to the screenshoot section.

3. nDroid

nDroid a.k.a 320mph is an ultra fast anything launcher that can open documents, play songs, open browser bookmarks, lookup web references, find torrents, do online searches and a lot more than you expect.
Although i was really liking launchy, i was a little inclined to switching to nDroid. The main reasons were:
- there are a lot of plugins for it so you can extend its capabilities.
- its free
- portable. No installation requited. Always been a big fan of this apps :D
- uses very little resources
- has a few more features then others ( like playing music etc. )

4. Find and Run

Find and Run Robot (FARR) is another free program for keyboard maniacs -- it uses an adaptive "live search" function to rapidly find programs and documents on your computer as you type.
Its the same with nDroid, although it lack some of the flashy look it makes up with functionality ( additional plugins can be installed ) and low resource consumption.

FARR also lets you quickly run web searches, send email, manipulate files, control on-screen windows, and much more. Build and share custom commands or install plugins to add tons of new features, like live search features for your clipboard history and your internet bookmarks; a popup a calculator with history tape and persistant variables; and many more..

A detailed (and always up to date) feature list for FARR can be found here and a screenshots here.

5. SlickRun

SlickRun is a keystroke based application launcher. It is a minimalistic designed tool and it shows a small window just above the system tray where it displays the time when its not used. To find out what comands can be used in it you can type in help and you will be taken to the online help files.
A feature that is unique to SlickRun is SlickJot - a place to store brief notes. You can add text to SlickJot by highlighting it and dragging it to the SlickRun window. You can also search through the clips using the built in find tool. Notes are automatically saved.
SlickRun uses verry little memory about 5MB at any given time.

6. Speed Launch

Speed Launch is an application launcher that extends the functionality and usability of Microsoft Windows. With Speed Launch, users can select their own words to open frequently used websites, documents, and applications. The most compelling feature of Speed launch is the use of a drag and drop interaction model to make this advanced functionality more intuitive to novice computer users.

Also another cool feature about it, is the fact that it uses functions instead of plugins to write aditional features, functions that you can write on your own with more ease then a plugin. You can check out the video below for more details about this.

<a href="http://video.msn.com/video.aspx?vid=90d73712-356e-4aa0-9298-34a72a17d553" mce_href="http://video.msn.com/video.aspx?vid=90d73712-356e-4aa0-9298-34a72a17d553" target="_new" title="Creating Functions in Speed Launch">Video: Creating Functions in Speed Launch</a>

7. ToolBox

ToolBox is more of a widget sidebar to me, its drag & drop interface creates shortcuts to almost anything; applications, drives, folders, even simple files. ToolBox helps you organise your desktop and get rid of numerous shortcuts that clutter it and take up valuable space.
What i found intersting about it was the fact that the first version of ToolBox was written many years ago as a 16-bit Windows 3.1 application using Borland Pascal.

8. Key Launch

Key Launch is an application launcher for Windows that can launch applications but also commands with just a few keystrokes.
Besides launching applications and files Key Launch can initiate Internet searches, open bookmarks, start Control Panel items, create a new email message, manage computer shutdown commands or open Internet addresses.

Compatible with Windows Vista

9. Dash Command

While Dash Command looks pretty nice ( see video below ), it didnt get so much buzz on the internet. The 2 main complaints are that its a payd one ( Pre-release Offer: $19.95 ) wich is a big thumbs down when you can get the same thing for free, and the second it has some problems on windows vista. For me the first point was enough to convince me to skip it.

10. Skylight

Skylight is another aplication laucher and It can search, launch, lookup, automate and define, all in a systematic, predictable way. Boasting advanced habit learning and matching algorithms, infinite plug-in extensibility and the general smarts equivalent of a rat, it is purpose built to make your computing life easier. A cool thing is that it can detect spelling errors in your typing :) .
For full list of what it can do check out its online documentation.

Google Chrome: Its official Google is planning to release a web browser

September 02, 08 by Gabi Solomon

After a lot of rumors about google's intentions of launching a web browser, and a lot of early screenshots of the application emerging in the blogoshere google has made the official announcement on there blog.

At Google, we have a saying: “launch early and iterate.” While this approach is usually limited to our engineers, it apparently applies to our mailroom as well! As you may have read in the blogosphere, we hit "send" a bit early on a comic book introducing our new open source browser, Google Chrome. As we believe in access to information for everyone, we've now made the comic publicly available -- you can find it here. We will be launching the beta version of Google Chrome tomorrow in more than 100 countries.

So why are we launching Google Chrome? Because we believe we can add value for users and, at the same time, help drive innovation on the web.

The company is hosting a press conference at its Mountain View, Calif., headquarters Tuesday at 11 a.m. PDT. I will be there and will live blog.

Where can you download Google's Chrome Browser?

Update: You can download Google Chrome Here.
You cant download it yet, they released a comic book in witch you can see some of the browser features:

  • Includes a brand new JavaScript virtual machine called V8
  • Tabs wil go above the window, not below the address bar
  • Location bar will support auto-complete functions and suggests web pages you've previously visited as well as suggested sites you haven't
  • Upon launch, you'll see an Opera-like speed dial with bookmarks and thumbnails for up to web sites
    There will be a privacy mode that allows you to surf without saving any personal history (Microsoft is building a similar feature into Internet Explorer 8)
  • The browser will constantly download up to date information about web sites with malicious code

Chrome will also utilize Google Gears to allow you to save many web sites and applications for offline use. And web applications will be isolated from other browser tabs, so if Google Docs or another app crashes, your browser won't automatically close.

Google's first screenshot of Chrome.

How to optimize the RAM on your PC

August 24, 08 by Gabi Solomon

I am a really "power" user of computers, not because i am an expert at them but because i have the problem that i opened a lot of programs at once ... and i mean a lot, which sometimes puts my computer into a sluggish state, because it runs out of RAM memory. I do admit an update of my RAM is in order but until then i found a small software to optimize my PC RAM usage just a little to make it work a little faster.

Its called RamBooster 2 and its available for download here.

Below is a video review of the software from cnet.com

boxee – the new generation in media centers

by Gabi Solomon

Just a few minutes ago i happened to tune into Chris Pirillo Ustream Chanel that was showing the GnomeDex conference, and it caught my attention right away.

It was a presentation of a new media center software called boxee.

boxee is a social media center. with boxee you can play videos, music and pictures from your PC or from the Internet. you can also share with your friends what albums you're listening to, what movies and TV shows you're watching, send recommendations and more.

boxee is designed to work with a remote control (it looks great on a big screen TV), but you can also control it using your keyboard.

once installed boxee will start scanning your local Movies, Music and Pictures folders automatically. boxee will attempt to bring artwork, reviews, cast, etc. for your media, so browsing your library becomes more useful and fun than looking at a list of files.

boxee is based on the best media center on the planet, xbmc.

If you havent figure it out what the fuss is about, well this media center will drive content right to your screen from services like youtube and last.fm and display it right on your screen, and above all it will let you know your friend activity on those services, get recomandation from your friends on what videos, shows to watch or what music to listen too.

Plus it can connect to other devices on your home network being computers, file storing servers or even mobile devices ( that have a way to comunicate on the network ) and pull in content from them as well : pictures, music or video.

I dont know if this has caught your attention, so i am going to add another BIG + ... its OPEN-SOURCE, yes you heard right ... open-source, plus it has versions for windows, mac and linux ... how cool is that.

The only bad side is its in alpha state and hasnt opened download to everybody, you must register on the site to get a download link ( hope i receive one soon ).

Enjoy the screenshots and videos below.
Cheers.

How to learn computer programming with Alice ?

July 30, 08 by Gabi Solomon

As most of you know computer programming is not an easy subject and most of the time people dont get into it because they cant understand teh concepts or they find it to boring.

Well Carnegie Mellon University has thought about this and developed and is distributing for free a praject call Alice. Alice is "designed to be a student's first exposure to object-oriented programming." The original version is designed for high school and college students; there's also a modified version geared for middle school students.

With the original version of Alice, kids can create movies and simple video games; the drag-and-drop design makes syntax errors less likely and easier to correct.

Alice is an innovative 3D programming environment for building animations in the form of stories, games, and web-ready videos. Alice teaches programming. Alice version 2.0 is in common use. Alice 3.0 is in active development with a projected launch date of August 2009.

Alice 2.0 has been very successful and enjoyed an adoption rate of 10% in US colleges and is expanding rapidly into high schools. We expect Alice 3.0 to surpass this mark considerably.

You can watch a full presentation and demostration of Alice 3.0, Introductory Programming in 3D on youtube by cliking this link.

Alice presentation video

Alice FPS game example

Open-source FTP client

July 27, 08 by Gabi Solomon

I have tried and tested a few FTP clients in search for one that would be to my liking, but couldnt really find one. So i revert back to using Total Commander as my ftp client.

A few dayas ago I stumbled across FileZilla. It’s an open-source FTP client for Windows and i find it to be really good. It’s fast, reliable, and user-friendly.

I think i finally found something to replace old Total Commander with :) .

What FTP clients do you use ?

the first real windows OS competitor

July 24, 08 by Gabi Solomon

Yes i know there are other competitors for Windows, that are very real such as Linux or MacOS , but you have to admit that they are pretty exclusive. I mean this in the way that some software that you run on windows, cant use on the other OS because there is not version of that software that suports the OS.
I believe this is one of the reasons why people use windows a lot, this and the fact that people got used to the windows feel and look.

Free alternative to windows

Today i found out through the youtube chanel of chris pirillo about a new alternative to windows called ReactOS

ReactOS is a free, modern operating system based on the design of Windows XP/2003. Written completely from scratch, it aims to follow the Windows architecture designed by Microsoft from the hardware level right through to the application level. This is not a Linux based system, and shares none of the unix architecture.
The main goal of the ReactOS project is to provide an operating system which is binary compatible with Windows. This will allow your Windows applications and drivers to run as they would on your Windows system. Additionally, the look and feel of the Windows operating system is used, such that people accustomed to the familiar user interface of Windows would find using ReactOS straightforward. The ultimate goal of ReactOS is to allow you to remove Windows and install ReactOS without the end user noticing the change.

Please bear in mind that ReactOS 0.3.5 is still in alpha stage, meaning it is not feature-complete and is not recommended for everyday use.

Below you can find his review of this new OS.
Hope you find this usefull

Cheers