Jan
26
Some web server administration tips on CentOS and cPanel (but not only)
January 26, 2010 | Leave a Comment
This is more of a personal notes for myself but I am sure others will find it useful.
Apache:
/usr/local/apache/logs/error_log
All exceptions caught by httpd, along with standard error output form CGI applications are logged here. The first place you should look when httpd crashes, or you incur errors when accessing a website.
/usr/local/apache/logs/suexec_log
Contains auditing information reported by suexec each time a CGI applicaiton is executed. If you receive an internal server error, with no relevant information being reported to the Apache error_log, check here for potential suexec policy violations.
Domain specific access logs are located here:
/usr/local/apache/domlogs/
PHP
To find out which php.ini is used for PHP configuration (to save you frustration of editing a non active php.ini) find it with the following simple command:
php -i | grep php.ini
where -i switch is used to give you PHP information (obviously). To see other useful switches run
php -h
to locate where php is use:
which php
(but you already knew this – right ?
)
*** Some of these tips are applicable not only to CentOS and cPanel configuration.
Jan
22
Problems running BlackBerry Simulator (fledge) on Windows 7 64 bit
January 22, 2010 | Leave a Comment
As I already wrote, BlackBerry development is not a lot of fun. Not only you basically can not develop in Linux and OS X (although there are some workarounds, it makes the process even more painful than it already is). But you will also have problems with 64 bit operating systems. RIM is in a position that they do not officially support 64 bit systems.
The main problem with 64 bit Windows 7 for me was that I can not close the simulator (or actually the “fledge” application that runs the simulators). There are 2 possible solutions to this problem:
- Kill the task through task manager
- The simulator should close if you are in debug mode and you disconnect the debug session
There is also another inconvenience which is caused by your cautiously guarding Windows system. It will warn you every time that (Oh my!) fledge will change something on your computer. You know – the standard User Control Account message. To avoid that message always popping up, you will have to adjust your setting in User Control Account panel. Hit “Windows” then just type UCA, you will get it. Adjust it to the minimum and you’r good to go.
Jan
6
The humans are dead – Flight of the Conchord
January 6, 2010 | Leave a Comment
I just could NOT not to post it. I am trying to do a rationality in multi agent systems research nowadays. This speaks to me and these guys rock!
I hope the robots remember those us that helped make them what they are and keep us around to do all those jobs that they don’t want to do. Christopher Amato
Aug
13
BlackBerry development with Eclipse plugin – fixing corrupted *.jdp file
August 13, 2009 | 1 Comment
It’s not a secret that Eclipse plugin is very buggy and although it has improved a lot over the time, the blackberry plugin still has a lot of issues and quirks. One of the problems that have been bugging me a lot was that sometimes the *.jdp file gets corrupted. This is the file where BB plugin for Eclipse saves most of the meta data for the project, including the files that are included in the project and consequently need to be compiled. So, many times I had problems with SVN meta data files corrupting this project, or sometimes perfectly legitimate *.java files that get stuck in the *.jdp file, but do not exist anymore. The result of the *.jdp file being corrupted is that your application does no longer get compiled and redeployed when you run it. And the worst part, Eclipse would not explicitly let you know about this. It would silently fail and not re-deploy the app. So unless this is the first time you run the application, or the changes you made are not visually obvious, you would not know about this. But this is completely separate issue. One of the many issues with BB Eclipse plugin already covered. Each time I have been struggling (sometimes for significant amount of times). Couple times I was able to manually delete files from the *.jdp file (although this is not recommended by RIM) and this solved the problem, but mostly I had to recreate the whole project from scratch, which if your project is large and, which is more important has dependencies on libraries, may become painful if you need to do this every few days.
So the easiest way I found so far to solve this problem is:
- Delete the *.jdp file (you can just rename it to *.jdp.OLD)
- Delete the project from Eclipse (right click the project and choose delete). DO NOT however check the checkbox “delete the contents of the project from disk”
- Create a new project and point it to the same place.
Since all the Eclipse project related files remain untouched, you should get your project exactly at the same state it was before it got corrupted, minus the corrupted part. Why – because when you re-create the project Eclipse plugin should re-create the *.jdp file.
Jul
23
New icon for FireFox 3.5
July 23, 2009 | Leave a Comment
I wonder how many people have noticed the icon change for the new Firefox 3.5? It has been changed. The change is not very significant, but it was significant enough for me to take notice (with a significant delay though).
So here we go, old and new icons side by side:
The old and the new (respectively left to to right) side by side
![]()
![]()
The old and then the new one – larger versions
![]()
![]()
Find the differences
Jun
9
If you need to pop up a dialog or any screen actually from a process that runs in background on BlackBerry, it is fairly easy to do, unfortunately it is (as pretty much everything with BlackBerry development) easy to figure out how to do.
The following piece of code should do the trick:
synchronized (Application.getEventLock())
{
Ui.getUiEngine().pushGlobalScreen(new CLAScreen(), 1, UiEngine.GLOBAL_QUEUE);
}
There are also a few things you should be aware of when using this code:
- Your backgroud process should implement UiEngine. Easy way is to extend Application.
- If you change UiEngine.GLOBAL_QUEUE to UiEngine.GLOBAL_MODAL, the dialog will block your thread until it is closed
Jun
2
Will Windows eventually loose portables war thanks to many ARM powered netbooks coming?
June 2, 2009 | Leave a Comment
Microsoft can very well loose the portable space completely. It already practically lost the mobile phones war. Although this happened not due to being able to support ARM processors, but due to the fact that mobile phone can not be efficiently powered by an operating system designed to be used on a desktop.
There are rumors that Microsoft is hoping to make a big splash in the Netbooks space. Netbooks are ultra small and portable laptops which are mainly intended to be used for internet – browsing/email/messaging and possibly light office tasks on the go. Those hopes however might just fall apart very easy with proliferation of Netbooks powered by ARM processors. Same processors that power most of our mobile phones.
“Inventec, a Taiwanese company that makes laptops on behalf of several of the world’s best-known PC brand names, is developing up to four Snapdragon laptop models for customers, said Mark Hirsch, vice president for marketing at the company.” They will showcase one of the concept laptops at the Computex in Taipei. The reference laptop is intended to demonstrate the possibilities of the platform uses a 1 GHz Snapdragon CPU. It has a 1,024 by 600 pixel resolution screen, a 64GB flash disk and integrated 3G wireless. And it only weighs about 800 grams – quite impressive for ~10″ laptop.
Those specs clearly show that you get quite a useful package which is extremely light and portable, plus you can usually go for more than 6 hours with a typical network usage. Not like current WiFi connectivity, integrated 3G wireless promises everywhere connectivity easily accessible at speeds comparable to those you will get on a weak WiFi link.
All of the above clearly makes the Netbooks attractive productivity devices on the go and for small tasks and my guess is that we will see a lot of those small laptops coming very soon and which is more important many of them will be powered by ARM processors. Since Microsoft does not currently support ARM processors, they will not be able to compete with other OSes in this space. There were rumors that Windows 7 will support ARM architectures, but it was not officially confirmed yet.
Many Netbooks are coming out powered by flavors of Ubuntu linux or recently reworked Android operating systems. Being targeted at embedded devices and open source – Android is an ideal choice for underpowered, small devices.
The final word of proliferation of Netbooks will probably remain after WiMAX. If the Netbooks can support WiMAX better and it gets sufficiently widespread, more and more people will choose Netbook over traditional laptop, especially when the Netbooks can be 2-3 times as cheap as laptops and people that do not need the processing power but rather need battery life and better connectivity will choose Netbook over a laptop in a heartbeat.
Apr
12
I have just signed up for the early pick developer program Palm inc is having for the developers. I have missed the window a little, since the submission process started about a week ago, but I think with my wast experience with developing for mobile devices and having diverse development platforms (I develop on Mac (OS-X) and (PC) Windows pretty much simultaneously, leaves me pretty good chances to be admitted.
WebOS is supposed to be at least as appealing as Android and iPhone. I personally like much more Android development than the iPhone development, but this is probably due to openness of the Android and the fact that I actually have quite successful application for Android, while iPhone development didn’t result in end user product just yet. I am not even mentioning the Blackberry development…
You can submit the application here
Apr
11
Android development vs. Blackberry Development
April 11, 2009 | 6 Comments
I was contemplating quite a lot about the title for this post. Originally I wanted to give it the title of “Why developing for Blackberry sucks” but then I thought it might be too harsh and does not really reflect the content of the post which is about comparing the experience of developing for Android and experience of developing for Blackberry and settled for the current title. There were other titles revolving in my head, but all of them were just variations of the original “why developing for Blackberry sucks”
I have been developing for Android for some time and lately I have been working on developing for Blackberry and I must say development for Android wins hands down in all aspects. Many times, especially frustrated with Blackberry buggy IDE or other cumbersome experience I wanted to write this post, but I had to find the time for it.
So what is so bad about Blackberry development? It starts at the very basics – development environment. Google has developed a very nice plugin for Eclipse which works very well and even has the basics of support for visual editing of user iterface screens. RIM – the company behind Blackberry for a long time had their own development environment – JDE. Written using basic SWING components, there’s no need to mention how bare boned and outdated it looked. They have recently introduced Eclipse plugin as well, but it is pretty buggy and half baked. It is hundreds times better than the first version of the plugin, but it is still from being stable and feature rich.
Then we have the emulators – gosh, why do I have to restart the emulator everytime I want to test a new build? It can take up to a few minutes to restart the emulators for the more advanced models. To feel the pain, just imagine the nightmare of programming the UI for Blackberry in that setup. And no, there is no visual helper that can show the layout quickly, not to mention visual builder.
The compiler, or more exactly the packager – “rapc” has many times weird problems and behaves like a whiny child with lots of attitude problems. Same goes for the MDS server emulator.
Compared to Android, this can be nightmare. Yes I’ve had some issues and observed buggy behavior with aapt while developing for Android, but it was quite easy to resolve. For the UI part of the development, Android beats Blackberry as well. Constructing layout using XML is much easier than writing actual Java code. (Apple had actually went one step furthergiving the developers visual tools.)
Localization is much easier in Android as well. Besides conceptually being easy, the support of the Eclipse plugin for localization is half baked and buggy and what’s most important, it is not that easy to find documentation on how to implement localization for Blackberry in Eclipse.
The last but not the least (and in fact probably most important) is the vibrant, enthusiastic and active community of the Android platform. It is so much easier to find answers to any problems you have while developing for Android. I was a little considered about Android being all open source in a sense that there is no central authority with central responsibility for certain things, and Blackberry has all this and it turns out that what many enthusiasts can do, easily outweighs any size company organized or not.
Apr
4
Ad aggregation and mediation networks
April 4, 2009 | 4 Comments
So, what is essentially ad aggregation network you might wonder. You certainly know ad network businesses. Even if you think you don’t, you encounter them everyday. One of the largest ad networks is the Google Adsense. Another example of huge ad network is DoubleClick, well, Google owns this one as well.
Publishers can sign up with an advertising network, place a snippet of code on their website, ad supported desktop application, or recently added mobile applications on iPhone, Android and Blackberry. Once the appropriate code snippet has been placed, the ads will start to flow to your visitors/users. You don’t have to worry virtually about anything except how to drive more traffic to you website/application and optimize the ads to give you best revenue. And that in fact makes a lot of sense to the publishers, since worrying about those two is quite enough to begin with and should be the only concern of the developer and/or publisher. Using advertising network relieves you from worries about where to get advertisers, how to bill them, implement an advertising platform so that you can track what is going on with the ads etc… etc…
Let’s take a glimpse into the history of online advertising. (All said, also applies to software advertising as well, but online advertising accounts for such a large portion of the “computerized” advertising, that I will just mention “online” advertising).
Since the appearance of online advertising, certain companies understood that being the mediators between the publishers and advertisers is very solid and profitable business model and many companies made big utilizing this business model and still continue to make great profit out of this business.
Those advertising platform companies did not appear right away. There was a considerable amount of time when advertisers and publishers will “manually” find one another and negotiate rates. The usual business incentive quite unsurprising applied here as well. If you were a small publisher, it was up to you to try and find advertisers to sustain you online business model. However if you were reasonably large publisher, advertisers will line up for available space on your website.
You can imagine what a pain it can be to find an advertiser if you are a small web publisher. You would have to spend considerable amount of time solving this problem, instead of worying about improving your publishing media. This deficit was identified when the problem become large enough to be noticeable and to be profitable. Companies started to aggregate advertisers and publishers and act as a mediator (or the middle man) usually in highly transparent manner for both advertisers and publishers.
When you concentrate on doing one thing, you would usually do it much better than if you would be concentrating on doing several things. Since those mediator businesses were concerned just about one task, they could offer much reacher experience both to publishers and advertisers, suplying advanced management and statistics tools. Advertisers were getting tools to make their campaigns target more specific audience and publishers in turn could receive much better revenue for the traffic.
Now we getting to the present where online advertising seems to be outgrowing the current model and requiring additional layer of aggregation. That’s where the ad aggregation and mediation networks come into play. Those networks do what ad networks did in the past. They aggregate advertisers and publishers, but instead of direct aggregatio, those mediator networks aggregate another ad networks. Those are essentially meta ad networks.
It would be interesting to see how successful those meta networks will become with time. Right now it is too soon to tell.