<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7064343413833673987</atom:id><lastBuildDate>Wed, 13 Jan 2010 20:21:37 +0000</lastBuildDate><title>Jesse's Blog</title><description>Thoughts on Internet, Software, Engineering, Work, and related stuff.</description><link>http://jessearm.blogspot.com/</link><managingEditor>noreply@blogger.com (Jesse)</managingEditor><generator>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JesseBlog" /><feedburner:info uri="jesseblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-7977494806553023991</guid><pubDate>Thu, 26 Nov 2009 11:43:00 +0000</pubDate><atom:updated>2009-11-26T18:43:26.770+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Web</category><category domain="http://www.blogger.com/atom/ns#">tumblr</category><title>Trying out tumblr</title><description>I have been using &lt;a href="http://jessearmand.tumblr.com"&gt;tumblr&lt;/a&gt; to do my blogging recently, due to its microblogging platform and its support of Facebook connect and Twitter, with an official iPhone app by default.&lt;br /&gt;
&lt;br /&gt;
I will be a bit dormant in writing things in this blog for an indeterminate time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-7977494806553023991?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/_DHN_C3PH1I/trying-out-tumblr.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/11/trying-out-tumblr.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-377423136960041935</guid><pubDate>Thu, 19 Nov 2009 07:13:00 +0000</pubDate><atom:updated>2009-11-19T23:45:19.093+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Cracking and distributing software illegally on the net may be fun, but you're hurting software engineering profession</title><description>I had a discussion with my peers in the past about a very familiar topic in the software industry, which is "cracking and distributing software illegally".&lt;br /&gt;
&lt;br /&gt;
What makes this discussion familiar is:&lt;br /&gt;
"Cracking doesn't hurt the software vendor, some people are still willing to buy it."&lt;br /&gt;
&lt;br /&gt;
Well yes, it's true in some way. In my opinion, if you crack and distribute Adobe, Microsoft, (add more here please), or any other software produced by big corporations, then it &lt;b&gt;helps&lt;/b&gt; them to market their product into the hands of those who doesn't have the money to pay for it.&lt;br /&gt;
&lt;br /&gt;
But, what is not familiar is:&lt;br /&gt;
"&lt;b&gt;You're definitely hurting the profession of software engineers&lt;/b&gt;"&lt;br /&gt;
&lt;br /&gt;
Why hurting the profession, since some of them are working for those companies?&lt;br /&gt;
&lt;br /&gt;
The fact is:&lt;br /&gt;
&lt;b&gt;Not all of them have the luxury of getting a big paycheck or benefits from corporations. Not all of them are happy with their corporate jobs. Some of them have the dream to create their own software, which allows them to put their own creativity into the product.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
As with any other professions that have been castrated with the ease of obtaining something from the internet (&lt;b&gt;especially if we're talking about illegal distribution&lt;/b&gt;), software engineer is no exception.&lt;br /&gt;
&lt;br /&gt;
I'll tell you why it's a &lt;b&gt;major&lt;/b&gt; problem:&lt;br /&gt;
&lt;b&gt;Cracking and illegal distribution is similar to the act of anti-competitive of big corporations, which is done by crackers for free.&lt;/b&gt;&lt;br /&gt;
They could always give trials, promo codes or ad-supported apps to promote their products. If you crack their software, then you're making their job easier.&lt;br /&gt;
&lt;br /&gt;
Why &lt;b&gt;anti-competitive&lt;/b&gt;?&lt;br /&gt;
&lt;br /&gt;
If you're distributing 2 million copies (or I don't know how much of that number is in the real world) of illegal software made by large software vendors, then you're eliminating the chance of indie software developers, or small software companies to produce and sell their own software at a cheaper price. &lt;br /&gt;
&lt;br /&gt;
I had heard opinions of many people who said something like this "&lt;b&gt;Why should I use other software, I could get Windows, Matlab, Adobe Photoshop and friends, Macromedia, etc. for free?&lt;/b&gt;" &lt;br /&gt;
This is why you're killing innovation and competition in the software industry.&lt;br /&gt;
That's the &lt;b&gt;major problem&lt;/b&gt; in Asian countries, and I don't know where else.&lt;br /&gt;
&lt;br /&gt;
Well it's good that if we have the mindset of "&lt;b&gt;Something is good when it's free&lt;/b&gt;", but you have to consider this:&lt;br /&gt;
"&lt;b&gt;When can we have free food, free housing, and free clothes?&lt;/b&gt;"&lt;br /&gt;
&lt;br /&gt;
Wake up and learn about software licensing, including open source software licensing like GPL, BSD, MIT, Apache, etc. Write your own software, or buy the cheaper ones, try to contribute in open source projects or invest in startup companies so they could make better software, instead of keep populating the internet with junks. &lt;br /&gt;
&lt;br /&gt;
I know that most of you are using pirated software because your boss or your school told you so. Well, here's what you can tell them:&lt;br /&gt;
"&lt;b&gt;Sorry, I don't want to do your homework or your job if you encourage me to use illegal software&lt;/b&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-377423136960041935?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/ca09cBCmGFU/cracking-and-distributing-software.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/11/cracking-and-distributing-software.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-3059312736843747301</guid><pubDate>Sun, 01 Nov 2009 04:11:00 +0000</pubDate><atom:updated>2009-11-01T13:09:22.948+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Mac</category><title>A simple shell script to download iPhone SDK with wget</title><description>Inspired by this &lt;a href="http://zaher14.blogspot.com/2009/01/tips-download-iphone-sdk-with-wget.html"&gt;guy&lt;/a&gt;, I just wrote a simple shell script to make it easy for me to download the huge iPhone SDK from Apple's website (to be exact http://adcdownload.apple.com).&lt;br /&gt;
&lt;br /&gt;
If you don't have wget, you can get it from the &lt;a href="http://macports.org"&gt;MacPorts Project&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Basically my script will do what it's done in &lt;a href="http://zaher14.blogspot.com/2009/01/tips-download-iphone-sdk-with-wget.html"&gt;this blog post&lt;/a&gt;. But, I just make it easier so I could just run the script by adding the most frequently modified parameters.&lt;br /&gt;
&lt;br /&gt;
Here's the script:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#!/bin/bash

function iphone_sdk_download() 
{
    if [ $# -lt 1 ] ; then
      echo "Usage is:"
      echo "./wget_iphone_sdk.sh [option] [url]" 
      echo " "
      echo "[option] should be in the form of --limit-rate=[number_in_kilobytes]" 
      echo "[url] should be started with http://adcdownload.apple.com"
      echo " "
      exit
    fi
 
    if [ $# -gt 1 ] ; then 
      wget $1 --tries=inf --server-response --continue --load-cookies cookies.txt $2
    else 
      wget --tries=inf --server-response --continue --load-cookies cookies.txt $1
    fi
}

iphone_sdk_download $1 $2

&lt;/pre&gt;&lt;br /&gt;
Now, just copy and paste this script to a file and save it as "wget_iphone_sdk.sh". Next, you have to change the permission of the file to make it executable:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# chmod 755 wget_iphone_sdk.sh
&lt;/pre&gt;&lt;br /&gt;
Okay, now you can download that huge iPhone SDK with resume and limit rate features with this command:&lt;br /&gt;
&lt;br /&gt;
# ./wget_iphone_sdk.sh --limit-rate=10k http://adcdownload.apple.com/iphone/iphone_sdk_version/iphone_sdk_version.dmg&lt;br /&gt;
&lt;br /&gt;
The above command will limit the download rate to 10 KB/second, if you want to limit the amount of bandwidth of the wget connection. If you don't want to limit your download rate, then you can omit it.&lt;br /&gt;
&lt;br /&gt;
Additionally, do not forget to export the cookies of the current session of the browser to cookies.txt. The script will read the cookies.txt in the current working directory. The downloaded file will be in the current working directory too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-3059312736843747301?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/qGkJD7b9cw0/simple-shell-script-to-download-iphone.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/11/simple-shell-script-to-download-iphone.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-2650448778614364853</guid><pubDate>Sat, 31 Oct 2009 01:23:00 +0000</pubDate><atom:updated>2009-11-14T14:01:32.560+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>To renew, or not to renew?</title><description>I just received a friendly email to renew my iPhone Developer Program. Due to my past experiences and my current situation, I'm thinking a lot about whether this renewal is worth it or not. &lt;br /&gt;
&lt;br /&gt;
I'm still interested to release an app to the App Store. But, the feeling of purchasing a service at the same price as other purchasers makes me feel that I deserve an equal treatment from the provider of the service. The fact is I don't feel like I was being treated equally. The problem is (again) the App Review policies.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;First&lt;/span&gt;:&lt;br /&gt;
I have to set the ratings of one of my apps, "PromptMe" to 17+ in the latest update, just because there's some guy having a "hard-on", and broadcasting it to the world. Setting an app's rating as 17+ will technically limit the market and users of my app. This is very disappointing, as I expect teenagers or kids could use my app too.&lt;br /&gt;
&lt;br /&gt;
C'mon, does Apple expect me to be able to create a perfect semantic filtering engine? This is crazy, there's no app that I had known so far with the ability to filter words or sentences perfectly. If I publish some dirty words on Twitter, I doubt all of the Twitter client apps would be able to filter all of it perfectly.&lt;br /&gt;
&lt;br /&gt;
What if somebody else uses Chinese, Japanese, German, French, or whatever language they are using to talk dirty on Twitter or other social networking apps ? &lt;br /&gt;
Would Apple's reviewer take time to review all languages ?&lt;br /&gt;
&lt;br /&gt;
I gave up to the regulations, but this is not an equal treatment. I don't know why in most cases, "regulations" are conflicting with human common sense.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Second&lt;/span&gt;:&lt;br /&gt;
I have another app "A Girl Story" that I had released on the store a long time ago. In the latest update I have to change the pictures because the girl is considered as underage.&lt;br /&gt;
&lt;br /&gt;
How does Apple knows the age of the girl by just looking at the pictures? I know her personally, and she's 21, so what is this?&lt;br /&gt;
As usual an App Review representative called me. I didn't argue, because I know it's useless to argue based on what other people had experienced. &lt;br /&gt;
Since the app itself is more of another photo gallery app with an ability for users to comment on it, I know that this is not an app with great demands or user base.&lt;br /&gt;
I also could not change the pictures with another girl. What's the point? Why should I pick random girl pictures from the internet? &lt;br /&gt;
So, I gave it up. &lt;br /&gt;
&lt;br /&gt;
Again, this is not about me being upset for not being able to get my app to be released the way I want. But it's about &lt;span style="font-weight:bold;"&gt;unfair&lt;/span&gt; treatment.&lt;br /&gt;
&lt;br /&gt;
I could show lots of bikini girls, hot models, XXX fantasy girls apps or whatever it's in the App Store that may show some young girls, but they're not underage. How could you really tell the exact age of a girl only by looking at the pictures ?&lt;br /&gt;
&lt;br /&gt;
But, should I do that? It's really &lt;span style="font-weight:bold;"&gt;wasting&lt;/span&gt; my time.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Here's what I can suggest for an opportunity to plan for future development of an iPhone app before purchasing the iPhone Developer Program:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
- What's the harm if I could use the iPhone development certificate? So I could install my own app on the phone, and maybe consult to some other people (or Apple if they have the time) to decide whether this could be released on the App Store?&lt;br /&gt;
&lt;br /&gt;
- What's the harm if I could use the AdHoc distribution certificate, so I could distribute my app to a few people, so they could try it? (This could be a part of the consultation process or app promotion before release).&lt;br /&gt;
&lt;br /&gt;
- If the consultation or beta testing results in the potential of my app to be distributed on the App Store, then I will purchase the iPhone Developer Program just to use the App Store distribution service, tech support, administration of my finance, etc.&lt;br /&gt;
&lt;br /&gt;
I think this is more reasonable and less risky for most developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-2650448778614364853?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/_1eHpJIkJg8/to-renew-or-not-to-renew.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/10/to-renew-or-not-to-renew.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-931892245874985932</guid><pubDate>Mon, 05 Oct 2009 19:29:00 +0000</pubDate><atom:updated>2009-10-07T10:46:50.878+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Mac</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Why I decided to become indie ?</title><description>This post might be too late, as I have been indie for several months. But, I would like to add another point of view on why someone decided to become a Mac OS X/iPhone OS Independent Developer.&lt;br /&gt;&lt;br /&gt;The reason, among other things are not purely for fame or fortune. But, it's more about freedom, flexibility, and peace of mind. If fame or fortune is the ultimate goal, then it's a bit irrational to be a one-man building software for selected few Mac/iPhone users or consumers (which most of the paying consumers are located overseas).&lt;br /&gt;&lt;br /&gt;As most Asian people like to think, investment on an innovative software product is risky and not promising from a financial manager's perspective. &lt;br /&gt;Especially if we're talking about Mac OS X and iPhone OS, the most niche and expensive platform in the world. Though, I have to admit it's not that niche anymore. I would say Linux distros are niche.&lt;br /&gt;&lt;br /&gt;Expensive, yes maybe. But, only if you're not counting the licensing cost of Microsoft software and the unreliability of most hardware vendors. iMac, Mac Mini or MacBook just works for most people.&lt;br /&gt;&lt;br /&gt;Why am I referring to Asian ? Because Asia is where I'm living in. Though, I have to make an exception for some developers from China or Japan who had been familiar with Mac/iPhone software development at a quicker pace than the rest of Asians.&lt;br /&gt;&lt;br /&gt;The Mac indie developers community had existed for a long time. They had produced great software that Mac users have been enjoying. But, its popularity arise since the existence of App Store. Well, who cares about an eye candy Mac OS X ? If we can't show it to our friends, partners, etc. when we're on meetings or on the go. That's where iPhone wins.&lt;br /&gt;&lt;br /&gt;But again, in the App Store you don't have full control of your app's release cycle and distribution. You gave it all up to Apple. Only few companies are willing to take that risk. Those companies are definitely not around here. Some are willing to do that, but very few.&lt;br /&gt;&lt;br /&gt;Don't forget, you're tied to your telco operator if you use the iPhone officially.&lt;br /&gt;&lt;br /&gt;So, the only way for me to execute software development on these platforms is by breaking the bureaucracy of organization, and all of the stupid things that are just hindering innovation.&lt;br /&gt;&lt;br /&gt;Indie devs are developing good software for the benefit of Mac/iPhone users and the dev community.&lt;br /&gt;&lt;br /&gt;Besides, we had fun doing it. One of the reason is, we're not working as a slave to some greedy corporate managers, but only for the benefit of users.&lt;br /&gt;&lt;br /&gt;Though, we might die and ran out of money. But, that's more worth it than being a slave.&lt;br /&gt;&lt;br /&gt;Why not GNU/Linux? You will suffer to death if you can't do it like Ubuntu or Linus Torvalds. The Linux desktop is still aimed at low-end market, which requires you to sell your software to a very few people who might not have enough monies to pay for a software or some technical geeks that are not interested to pay you for your software.&lt;br /&gt;&lt;br /&gt;Software packaged for GNU/Linux distros do its best for pure community software development, not commercial. Most companies or developers investing on the Linux platform are gaining income "not" from the software product itself, but from its usage or additional services like tech-support. Dual-licensing or multi-licensing is also another way.&lt;br /&gt;&lt;br /&gt;Why not Windows ? Don't ask that question. They have loads of monies, and their software is crap. At least in my opinion, anything that's not Unix or Linux compatible is the one that refused to cooperate.&lt;br /&gt;&lt;br /&gt;Why not web apps? We use the web too as an extension platform, connectivity tool, promotion tool, and software distribution. But we're focusing on user experience on the desktop, laptop, or the iPhone.&lt;br /&gt;&lt;br /&gt;Just my 99 cents (stupid iPhone app price).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-931892245874985932?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/i3es0lim8_0/why-i-decided-to-become-indie.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/10/why-i-decided-to-become-indie.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-6959414243492505271</guid><pubDate>Wed, 09 Sep 2009 09:52:00 +0000</pubDate><atom:updated>2009-10-27T23:35:42.999+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Snow Leopard</category><category domain="http://www.blogger.com/atom/ns#">Mac</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>List of things that are broken (bugs) on Snow Leopard upgrade (note: only upgrade)</title><description>I had found out several things that are broken, when I upgrade my Leopard system to Snow Leopard. This list may only be found in specific systems, so it could not be applied to all systems. &lt;br /&gt;&lt;br /&gt;1. Interface Builder crashes and alert messages on launch (after iPhone SDK 3.0 for Snow Leopard installation)&lt;br /&gt;&lt;br /&gt;This is caused by a standard C++ library sitting on /usr/local/lib/. I did installed another version of gcc, when I'm using the unofficial iPhone toolchain in the past. You can find out that this library is linked with Interface Builder upon installation of iPhone SDK for Snow Leopard. After the IB's launch, you could find a crash report in ~/Library/Logs/CrashReporter/&lt;br /&gt;&lt;br /&gt;Find this line:&lt;br /&gt;&lt;br /&gt;Binary Images:&lt;br /&gt;    0x1000 -    0x14ff2 +Interface Builder Cocoa Touch Tool ??? (???) &lt;CCFF36F2-6DC0-0ED7-D63F-214E5CCCBCBF&gt; /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Interface Builder/Plug-ins/IBCocoaTouchPlugin.ibplugin/Contents/Resources/Interface Builder Cocoa Touch Tool&lt;br /&gt;... (omitted)  &lt;br /&gt;&lt;br /&gt;  0x814000 -   0x871ffb +libstdc++.6.dylib ??? (???) &lt;04B812DC-EC67-0DAA-8B7D-2852AB14BE60&gt; /usr/local/lib/libstdc++.6.dylib&lt;br /&gt;&lt;br /&gt;... (omitted)&lt;br /&gt;&lt;br /&gt;I had read the dyld manual page. It load libraries in the /usr/local/lib/ (user-installed libraries) before those in /usr/lib/ (system libraries) by default. So, this is the cause of the problem. After I removed the libstdc++, the problem is gone.&lt;br /&gt;&lt;br /&gt;2. AirPort Problem.&lt;br /&gt;&lt;br /&gt;I use the internet sharing feature quite a lot, to share my ethernet connection to another Airport device (e.g. iPhone). The problem with this one is, the AirPort sometimes will refuse to be turned on, after I wake the Mac from standby state. In other cases, the Internet Sharing feature will just not work after several idle time, or after the Mac is woken up from standby state.&lt;br /&gt;&lt;br /&gt;I have to reboot in order to turn on the AirPort again, or reenable the Internet Sharing feature, in the case of another devices unable to join the network.&lt;br /&gt;&lt;br /&gt;This is what I found in the kernel.log in the event of the AirPort link is down (not sure, if it's related):&lt;br /&gt;&lt;br /&gt;Sep  8 13:34:31 Jesses-MacBook kernel[0]: Assertion failed: file "/SourceCache/AirPortDriverBrcm4311/AirPortDriverBrcm4311-410.91.20/src/wl/sys/wlc_bmac.c", line 3437: (R_REG(wlc_hw-&gt;osh, &amp;wlc_hw-&gt;regs-&gt;maccontrol) &amp; MCTL_EN_MAC) == 0&lt;br /&gt;&lt;br /&gt;This might be the cause in the event of the Internet Sharing feature is not working (I'm using static IP address 172.16.1.1 as my AirPort address for Internet Sharing):&lt;br /&gt;&lt;br /&gt;9/8/09 1:36:27 PM mDNSResponder[17] setsockopt - IP_MULTICAST_IF error 172.16.1.1 -1 errno 49 (Can't assign requested address)&lt;br /&gt;&lt;br /&gt;3. MacPorts problem&lt;br /&gt;&lt;br /&gt;I used several softwares provided by MacPorts project. Examples are wireshark, gimp, mplayer, git-core, etc.&lt;br /&gt;&lt;br /&gt;I was unable to build mplayer and gimp (which is related to the inability to build its dependent, tcl).&lt;br /&gt;&lt;br /&gt;It turns out I was previously wrong and very inattentive in analyzing this problem. It's also caused by the similar issue of user installed files in /usr/local/. In this case, it's related to redeclaration of variables, because the compiler is referring to header files in /usr/local/include/ and /usr/include/.&lt;br /&gt;&lt;br /&gt;But, there are still &lt;a href="http://trac.macports.org/wiki/SnowLeopardProblems"&gt;problems&lt;/a&gt; in building other MacPorts' packages into x86_64 architecture.&lt;br /&gt;&lt;br /&gt;4. Missing Icons in the Dock&lt;br /&gt;&lt;br /&gt;A weird problem that never happened before to me, the Icons was missing "once" and it just shows a blank shortcut, and it's not fixed by rebooting the OS. I have to remove the icons from the Dock, reboot, and add the icons again.&lt;br /&gt;&lt;br /&gt;5. Slower Icons loading in the Finder&lt;br /&gt;&lt;br /&gt;The application icons in the Finder have a bit of delay to load at opening the Finder. I'm really not sure whether this is a performance issue of my MacBook 4,1 with Snow Leopard, or it's just how Snow Leopard is in loading the icons.&lt;br /&gt;&lt;br /&gt;6. Software Update hangs at installing the update&lt;br /&gt;&lt;br /&gt;The only clue I have is related to Distributed Objects message. &lt;br /&gt;&lt;br /&gt;9/11/09 12:32:51 PM Software Update[2684] *** -[NSMachPort handlePortMessage:]: dropping incoming DO message because the connection or ports are invalid&lt;br /&gt;&lt;br /&gt;I had tried what Apple recommends prior to Mac OS X 10.5.6, which is to delete the contents of /Library/Updates. But, it doesn't work in this case. Now, I have to manually download the software updates from Apple's website. &lt;br /&gt;&lt;br /&gt;7. Existing installations of Ruby on Rails and its environment (we're now using 64-bit).&lt;br /&gt;&lt;br /&gt;This has been solved by various people. The best source that I had found so far is &lt;a href="http://gist.github.com/177368"&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;8. Finally, &lt;a href="http://pigoz.wordpress.com/2009/09/26/compiling-mplayer-on-mac-osx-snow-leopard-with-ffmpeg-mt-ordered-chapters-and-libass/"&gt;this&lt;/a&gt; has provide one of the best information to run MPlayer OS X Extended for SL. &lt;br /&gt;&lt;br /&gt;Anyway, MPlayer OS X Extended has not been working properly for me since Leopard. I found out that it's because of the default build of mplayer from MacPorts which doesn't support fontconfig (in the case of subtitle or OSD).&lt;br /&gt;&lt;br /&gt;I had to broke my dependencies on MacPorts' packages for a while in SL, because of this reason.&lt;br /&gt;&lt;br /&gt;Luckily, I made a backup of my old Leopard system using Carbon Copy Cloner, in case I need something urgently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-6959414243492505271?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/buJ20zpxdBc/list-of-things-that-are-broken-on-snow.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/09/list-of-things-that-are-broken-on-snow.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-7946422710720775794</guid><pubDate>Mon, 07 Sep 2009 10:27:00 +0000</pubDate><atom:updated>2009-09-08T01:33:19.565+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Why Mathematicians != Software Engineer? and Software Engineering != IT?</title><description>I was just having the idea to write about this. Though, I have been thinking about it for a long time.&lt;br /&gt;&lt;br /&gt;As the title had clearly said, this is a situation that I had observed in the Software Engineering industry.&lt;br /&gt;&lt;br /&gt;Even though we all know that Google are looking for expert mathematicians for their employees. But by being a software engineer requires more than just your outstanding math skills, and otherwise by being an experienced software engineer is not enough without refining your math skills.&lt;br /&gt;&lt;br /&gt;I had observed some people and some of my peers who are good at math which is the basic skills in Computer Science, but they're either "not motivated" or just not good at software engineering. Although, in most cases "motivation" is the key.&lt;br /&gt;&lt;br /&gt;Why ? Here are some of the reasons:&lt;br /&gt;&lt;br /&gt;1. Software engineering requires patience, good knowledge and experience in language constructs and meanings. &lt;br /&gt;&lt;span style="font-style:italic;"&gt;Lots of math geniuses are good at solving patterns in numbers or logics, but they may not be good at language.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Software engineering requires tinkering, hacking, lots of reading and understanding of other people's code, APIs, and how to utilize the existing hardware with the software provided for it.&lt;br /&gt; &lt;span style="font-style:italic;"&gt;A math genius may be very good at solving math equations, and understood a lot about mathematical theories, symbols and its relations. But, without engineering aptitude, it's just not enough to use only your math skills in software engineering.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Software engineering is pretty much useless if you can't produce something (a code or an application) that could be seen or used by other people. &lt;br /&gt;&lt;span style="font-style:italic;"&gt;To determine that you're a good mathematician, it's enough for you to just roll out a solution, theorem, or conclusion to a problem, and show the mathematical steps in solving the problem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Source code of a software should be learnable and understandable by more people than a mathematical theorem is. &lt;br /&gt;&lt;span style="font-style:italic;"&gt;To understand math, you need to spend quite amount of time to learn math from the basic to advanced topics. While to learn software engineering, you can just use basic math and logic, and you can improve your math skills based on your requirements. Lots of software engineers are talented enough to make their work understandable by lots of people (who at least is intelligent). Meanwhile there are still mathematicians, who only thinks that they only need to make their work understandable only by mathematicians like themselves.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. A Software product needs to think about human factors or the exact technical term is "user interface".&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Most mathematicians need to only think about whether their work is mathematically proven and it's only need to be reviewed by peer mathematicians.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, I'm not just saying that mathematicians are imperfect, but software engineers are also imperfect, if you don't care about math.&lt;br /&gt;&lt;br /&gt;Most of the amazing improvements in AI and computer graphics software, and many other things are because of math.&lt;br /&gt;&lt;br /&gt;As it's by holding the status of "IT staff" or whatever the term it's, it's not really enough to do software engineering. This is important, because I'm quite worried there are more people majoring in CS who care more about getting certifications from commercial companies such as Cisco, Microsoft, SAP or whatever it's, instead of becoming a software engineer.&lt;br /&gt;&lt;br /&gt;Don't start another pack of "branded" techies. If you want to brand yourself in technology such as OpenGL, DirectX, Python, Ruby, C, Cocoa, C#, .NET, Java, Qt, TCP/IP or knowledge such as Statistics, Probability, Game Theory, Stochastic, Combinatorics, Neural Network, Fuzzy Logic, etc. then that is better, but please don't just brand yourself with a company name prefix.&lt;br /&gt;&lt;br /&gt;But, I must say that you don't need to be a software engineer if you're majoring in CS (you can be an artist if you like). Again, please don't brand yourself with a company name. Even though, it's okay to state that you're "working for a company" or even better "founded a company".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-7946422710720775794?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/XGJOXmjGsNc/why-mathematicians-software-engineer.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/09/why-mathematicians-software-engineer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-10786715739036822</guid><pubDate>Mon, 31 Aug 2009 03:26:00 +0000</pubDate><atom:updated>2009-11-10T19:21:06.562+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">PromptMe</category><title>PromptMe's observation (be grateful for what you can get easily)</title><description>I would like to write this post as an iPhone Developer. But, in opposed to what most people did, I won't make another complaints at Apple, even though what I did the most are making improvements suggestions to them. Apple had given me more than I can imagine, if they do not exist.&lt;br /&gt;
&lt;br /&gt;
As I had experienced myself as an independent "service provider" or apps developer, I tried to respond to tiny ideas that came up along the way from iPhone users.&lt;br /&gt;
&lt;br /&gt;
I released Prompt with no serious purpose. I use my spare time to come up with unique UI that looks like a terminal (or in the sci-fi world, some geeky fans might correlate this to "The Matrix" movie).&lt;br /&gt;
&lt;br /&gt;
If you're an average user, you might wonder why I don't use the standard UI, as it's commonly demonstrated in most apps. Well, here's the answer: &lt;br /&gt;
&lt;br /&gt;
I could, but I should come up with a different name than "Prompt", and I have to struggle with finding a good brand (that's unique) and good graphics design that would make this app stand out from the rest. Prompt or PromptMe is using simple graphics, and I don't need to hire or pay professional graphic designers to do the logo, and other graphics contained within. &lt;br /&gt;
&lt;br /&gt;
If you don't know yet, I'm not backed by VC funding or full time employment, or regular income (though, I know lots of people around my area are "wasting time" with their so-called full time employment). I have to keep my budget thin. I have to put up with demanding schedules of freelance projects, etc. This are done just to please "all of you", so you could enjoy iPhone apps, and for those who are hiring me for projects, so you could gain money or help with my work.&lt;br /&gt;
&lt;br /&gt;
Why am I releasing PromptMe, where I could spend my time elsewhere ? Some people want chat functionality with "Prompt", then I tried to make it, maybe the existing users would want to use it.&lt;br /&gt;
&lt;br /&gt;
But, after a while since 21st of August (the released date), here's what I get from &lt;a href="http://www.moopf.com/appstorereviews/"&gt;Moopf App Store Reviews&lt;/a&gt;, you can also enter 322663058 as an application ID:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
"Soooooo Not Worth $1.99!" by West Michigan Traveller&lt;br /&gt;
I can't believe that I got suckered out of $1.99 for this! The flashing green text is enough to cause an epileptic fit, and the instructions for use are weak at best. I played with this app for over an hour after downloading it, and was never able to carry on an actual "conversation" with anyone. Based on the random comments flashing on the screen from other users, I was not alone in my experience. The concept was somewhat intriguing, which is what lured me in, but the design, execution and explanation are very mediocre and seem incomplete to me. I wish I had stayed away from this one, and can only recommend that others do too. An app that costs $1.99 needs to OVERDELIVER, and this one did not even live up to my lowest expectations. To the developer: You should have started this off as a free app, and then raised the cost after the design flaws and interface were perfected. I'm actually mad that I paid for this! UPDATE: I just deleted this app... it is total garbage.&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Hello Michigan Traveller,&lt;br /&gt;
&lt;br /&gt;
If you'd like a refund, because $1.99 is so expensive, then just give me your PayPal account. Though, I'm sure you can afford $1.99, since you can buy an iPhone, or else I wonder how do you get through with your living cost there, if you feel $1.99 is too expensive for an app.&lt;br /&gt;
&lt;br /&gt;
I paid a game for $2.99 just to tried it out, I don't need the game, so I delete it and I don't think about it afterward. &lt;br /&gt;
It's really not sensible to talk trash, and mocking about it, referring to the app as a garbage. I spent $2.99 and it's my decision, not the developer's mistake, because the developer never forced me to buy it. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
"Don't Waste Your Money" by RippedOffCanadian&lt;br /&gt;
This app is a fake. It's a whole bunch of canned responses. I was talking to "the developer" in the app and you could tell it wasn't real. IF (And this is a big IF) this program is legit... It's super buggy at best. Don't waste your money. &lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
I had been trying to talk to this guy, and he's not familiar with the interface. He doesn't know what's inside, and he never tried to figure out. I really doubt he would even be interested to use it, so why did he claimed something that isn't proven ?&lt;br /&gt;
&lt;br /&gt;
He's just gone after several trials of the app.&lt;br /&gt;
&lt;br /&gt;
Now, why didn't I make this free ? To be honest I'm not looking to collect users for now. &lt;br /&gt;
&lt;br /&gt;
I had given away 50 promo codes, so some people could try it for free. I really do not force any of you to buy it. If some people did, then they must think that they have $1.99 to spare. Though, I do hope they like to use the app, but, could I force them ? No. &lt;br /&gt;
&lt;br /&gt;
So, I'm really confused why did he think I'm ripping him off ?&lt;br /&gt;
&lt;br /&gt;
Have you ever had a worse experience where people are ripping off your resources, while you don't get what you really supposed to get ? &lt;br /&gt;
If you feel you're ripped off by just a $1.99 iPhone app which does what it says, then I think your life is so pleasant, you have never been ripped off at any point in your life.&lt;br /&gt;
&lt;br /&gt;
The App Store ecosystem is the way it's, mostly "&lt;span style="font-weight:bold;"&gt;NOT&lt;/span&gt;" because of Apple's fault. It's people who are just ignorant, and unable to be grateful for what they could get. Those immature users are also unable to gave constructive feedbacks or reviews. Can they help the developer by working on the app? The only thing that they can do is "whine" like "pussies".&lt;br /&gt;
&lt;br /&gt;
For whiners:&lt;br /&gt;
Write your damned App Store will you ? Build your own iPhone. &lt;br /&gt;
As you had chose to buy the iPhone, you just have to live with it.&lt;br /&gt;
&lt;br /&gt;
In the age where you can get Skype, Facebook, Firefox, Safari, and all of those great software for free. This situation will just kill independent developers like me. Besides, remember that I'm not living in a place where "VC Funding" could be obtained easily. I also found it difficult to find talents in Mac / iPhone development around here.&lt;br /&gt;
&lt;br /&gt;
Software is not a piece of thing where you consumed once, and it's gone afterward. Software is not a food. You can reuse it in the future, you can re-download apps in the App Store for free (be grateful for such system). So I really wonder why FOOD is more expensive than Software ? People are not that whiny with consuming food which may cost them $4 and it's just gone to their stomach.&lt;br /&gt;
&lt;br /&gt;
Now, PromptMe 1.0.1 is In Review, but I feel really less motivated to support this app by reading these kind of reviews. Though, I might change my mind and keep supporting this app.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-10786715739036822?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/kB1Jfk6MCg8/promptmes-observation-be-grateful-for.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/08/promptmes-observation-be-grateful-for.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-348907454696507208</guid><pubDate>Sat, 29 Aug 2009 03:51:00 +0000</pubDate><atom:updated>2009-08-29T17:50:56.676+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Updates are more critical than new apps (a better App Store review process)</title><description>As we all know as iPhone developers, the most grueling or frustrating part to endure in iPhone apps development is to deal with the App Store review process.&lt;br /&gt;&lt;br /&gt;This is not the part when I would say &lt;a href="http://en.wikipedia.org/wiki/Cydia_(application)"&gt;Cydia Store&lt;/a&gt; is the solution, and I'm also patient enough to wait in the app review queue as other developers are doing. Though, what I would like to point out in this post is:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Separation of review process between updated and new apps"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I also prefer a separate section between new apps and updated apps in the App Store, so both of them have an equal visibility.&lt;br /&gt;&lt;br /&gt;As &lt;a href="http://joehewitt.com"&gt;Joe Hewitt&lt;/a&gt; had also pointed out, any bug that Apple finds after their two weeks delay would have been found by users or developers on day one, and fixed on day two.&lt;br /&gt;&lt;br /&gt;Now, I don't agree if the review process should be removed completely, because this will lessen the quality control of the apps that will be released on the App Store (more crap apps will stream out in this case). New apps should be reviewed, and that's a process which I consider as acceptable and normal.&lt;br /&gt;&lt;br /&gt;But, in the case of updates, this is a critical and important process that should be dealt with as quickly as possible. In the case of popular apps in the App Store, users will found it inconvenient to wait for one small bug to be fixed. Moreover, for average users, they might wonder whether the developer really care about the app ? As they had bought the app (despite, it may only be in the range of 99 cents - $4.99).&lt;br /&gt;&lt;br /&gt;Updates are done for app that has been accepted in the first place, so it's normal to give a chance to the developer to update it without waiting on the review queue. But, to enforce quality control for updates, this review process for updates should also not be eliminated completely.&lt;br /&gt;&lt;br /&gt;Here's my suggestion on how it works:&lt;br /&gt;1. A new app is released after the normal review process, and it's displayed in the "New" apps section.&lt;br /&gt;2. A bug is found, or small enhancements are added, then the developer submitted an update.&lt;br /&gt;3. The updated app is released, and simultaneously being put in the review queue for "updated apps". &lt;br /&gt;4. Existing users received notifications of this new update of the app from the App Store.&lt;br /&gt;5. When this updated app has its turn to be reviewed by the App Review Team, Apple could proceed with their necessary inspection process, and they could decide to inform the developer to make some changes to the existing app in the App Store, if there are some situations in which Apple do not agree with.&lt;br /&gt;6. Developer made the necessary changes, updated the app, and it's released automatically, and it will be put in the review queue again.&lt;br /&gt;&lt;br /&gt;Now, what if a developer try to game this system, by keep on updating the app, so it will be put in the front of the review queue again ? So, it will not get reviewed by Apple, and the developer could keep on making changes.&lt;br /&gt;&lt;br /&gt;The solution to this problem is, &lt;span style="font-weight:bold;"&gt;"there's no need to restart the position of this updated app in the queue"&lt;/span&gt;. On the "review" day, the app will be blocked for further updates, until the review process is done. When the review process is done, Apple should "mark" this app as "acceptable updated version", and it will be displayed in the "Updated" apps section. Now, the developer could update the app, if they choose to do so afterward.&lt;br /&gt;&lt;br /&gt;This will facilitate a more efficient app review process, and it will provide developers with more chances and flexibility in their development process. Besides, it will not lessen the motivation of developers to maintain their apps, giving them a reason for not to just continue with pumping out new craps to the App Store.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-348907454696507208?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/qGRRVuD2mg8/updates-are-more-critical-than-new-apps.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/08/updates-are-more-critical-than-new-apps.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-3152738793482794884</guid><pubDate>Sun, 23 Aug 2009 19:04:00 +0000</pubDate><atom:updated>2009-11-10T19:18:44.594+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">PromptMe</category><title>Regarding PromptMe's Usability</title><description>As &lt;a href="http://itunes.com/apps/promptme"&gt;PromptMe&lt;/a&gt; has been live in the App Store for 2 days, I sense that the users of this app (which I assume most of them are using the promo codes I gave away) do not use it with a pattern that I expect they will use.&lt;br /&gt;
&lt;br /&gt;
Some of them are just sending random message without following through a conversation. They don't seem to respond to replies that are made by me. A few are engaged in a conversation for a while, but they're not really active. The only people who're using this app in a pattern that I expect to be are the testers of this app.&lt;br /&gt;
&lt;br /&gt;
This is in contrast to few similar apps out there in the store, which has quite amount of users. They're quite popular, and it doesn't require lots of time for the users to get familiar with the usage pattern and be involved in the conversation with other users of the app.&lt;br /&gt;
&lt;br /&gt;
My guess is if I make this app free, the amount of users will increase significantly, and I assume more junks or stupid messages will flood the conversation, as it's the case with &lt;a href="http://itunes.com/apps/prompt"&gt;Prompt&lt;/a&gt;. Though, Prompt doesn't have a conversation element, it's just an overnight idea, that I worked on around a week. But, I was referring to the twitter updates from it, which is just a hint of the amount of users trying out the app.&lt;br /&gt;
&lt;br /&gt;
Is this a sign that I should just make another twitter client app or regular multi-IM app (with the support of Google Talk, Yahoo, etc.) ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-3152738793482794884?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/EBql0oO61Xk/regarding-promptmes-usability.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/08/regarding-promptmes-usability.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-6161221766462537800</guid><pubDate>Sun, 23 Aug 2009 05:21:00 +0000</pubDate><atom:updated>2010-01-03T08:34:58.342+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">PromptMe</category><title>PromptMe, Yet Another iPhone/iPod Touch Communication Tool</title><description>These screenshots are using another color-theme (it will be available in version 1.0.1).&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OsuhH8p7v3g/SpDX8soCj5I/AAAAAAAAAEs/yjCCwL0Awf0/s1600-h/prompt-blue-white.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer; width: 214px; height: 320px;" src="http://3.bp.blogspot.com/_OsuhH8p7v3g/SpDX8soCj5I/AAAAAAAAAEs/yjCCwL0Awf0/s320/prompt-blue-white.jpg" alt="" id="BLOGGER_PHOTO_ID_5373031793224224658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OsuhH8p7v3g/SpDYFPSuxdI/AAAAAAAAAE0/7hcwCEYnf-Q/s1600-h/connversation-blue-white.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer; width: 214px; height: 320px;" src="http://1.bp.blogspot.com/_OsuhH8p7v3g/SpDYFPSuxdI/AAAAAAAAAE0/7hcwCEYnf-Q/s320/connversation-blue-white.jpg" alt="" id="BLOGGER_PHOTO_ID_5373031939969041874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
When I made &lt;a href="http://itunes.com/apps/prompt"&gt;Prompt&lt;/a&gt;, I was inspired by the idea to create an intelligent bot that enables a user to have a simple conversation, and commit a query to the internet or some kind of data source, to search for information or anything that a user would like.&lt;br /&gt;
&lt;br /&gt;
This idea is "cool", but it's still too complicated, as I have to create a difficult machine learning engine to analyze the semantics of the text input. Then I decided to just release Prompt to contain jokes and quotes in the programming world. For that matter, I use "terminal" as a user interface style.&lt;br /&gt;
&lt;br /&gt;
When I released Prompt, a user wants to chat using it, well this gives me the idea to just create a simple messaging system that allows communication. I thought this would be easier to implement and more natural than creating an Artificial Intelligence.&lt;br /&gt;
&lt;br /&gt;
So finally, I decided to work on &lt;a href="http://itunes.com/app/promptme"&gt;PromptMe&lt;/a&gt; starting from July 4th. What I mean by "work" here is the actual implementation by writing code. I was able to finish it, and it's released by Apple on 21st of August.&lt;br /&gt;
&lt;br /&gt;
I pretty much work on it days and nights, and near the submission date on 10th of August, I did several bug fixes and app resubmissions (I tried to make sure not to waste Apple App Reviewer's time), and yes, I wrote my own server side web application to handle the message routing, storage, and "device" management. I said "device", because users of this app are not associated by a username or account, but by their device.&lt;br /&gt;
&lt;br /&gt;
The next update, which is still "In Review" will also address several small bugs, and an additional color theme, which could be modified from the Settings app.&lt;br /&gt;
&lt;br /&gt;
So, what makes this different than the other messenger apps out there ?&lt;br /&gt;
"It's anonymous, hassle-free, you don't need to setup a user account, and it's using a unique user interface".&lt;br /&gt;
&lt;br /&gt;
Of course, I will think about improvements of this app in the future, or maybe different type of UI, which serves similar purpose, based on the same engine, and maybe with more extra features, that would probably use more media.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-6161221766462537800?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/cId84dcb9p4/promptme-yet-another-iphoneipod-touch.html</link><author>noreply@blogger.com (Jesse)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_OsuhH8p7v3g/SpDX8soCj5I/AAAAAAAAAEs/yjCCwL0Awf0/s72-c/prompt-blue-white.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/08/promptme-yet-another-iphoneipod-touch.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-3407218808651443992</guid><pubDate>Sun, 16 Aug 2009 18:33:00 +0000</pubDate><atom:updated>2009-10-28T03:58:23.574+07:00</atom:updated><title>It's funny how people could see more weakness in their area of activities</title><description>Just for fun, I read a blog titled "&lt;a href="http://cacm.acm.org/blogs/blog-cacm/26342-only-the-developed-world-lacks-women-in-computing/fulltext"&gt;Only the Developed World Lacks Women in Computing&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;In this blog I could see how people's perception is more sensitive to what's there around them compared to those in the other side are seeing, so this is my comment on that post:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;I can't agree completely on your observations.&lt;br /&gt;&lt;br /&gt;I graduated from the most reputable technical school in Indonesia.&lt;br /&gt;&lt;br /&gt;I've been a software developer "officially" for almost 3 years in the developing country, Indonesia. I had experienced software development in Singapore as well for about 6 months.&lt;br /&gt;&lt;br /&gt;Very few females chose IT or especially software engineering (this is not just IT) as a career, especially in the developing world. To be honest, they chose that because they could't be socially active or attractive as other females. That's also why there are more males in this area, coupled with the fact that most males are better at rationality, logic and math.&lt;br /&gt;&lt;br /&gt;Most females here are dreaming about the lucrative and glamour life that they could have if they chose another field, like entertainment, arts, or another socially active careers. IT or software engineering in the developing world will force you to be a "technology slave" to those who had more monies.&lt;br /&gt;&lt;br /&gt;Creativity is not that encouraged, we have to dedicate ourselves to project deadlines to meet the company's goal. Because money is always the issue, and people are not willing to work hard if the money incentives are not good enough, which is the case with most computer science related work.&lt;br /&gt;&lt;br /&gt;We don't have the luxury of Google, Facebook, Apple, or other creative tech companies in the US to encourage more females in this area. I had seen lots of female engineers in the "developed" world, and they are good too.&lt;br /&gt;&lt;br /&gt;India is different, because they're more active in IT, it's one of their biggest source of income. Malaysians with that point of view probably only existed in academic world.&lt;br /&gt;&lt;br /&gt;In my observations in Indonesia, or maybe Singapore, and Malaysia too, most female undergrads quit their CS career after few years of grunt's work or even right after their graduation to pursue a more rewarding career which allows them to be flexible and creative.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I have a contrasted point of view by living in this side of the world, I could also show several contrasting opinions as well in other areas, but that's it for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-3407218808651443992?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/7_s7eSVJO2w/its-funny-how-people-could-see-more.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/08/its-funny-how-people-could-see-more.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-8913256173499092635</guid><pubDate>Thu, 02 Jul 2009 06:52:00 +0000</pubDate><atom:updated>2009-07-03T01:50:54.107+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>My ancient work barablu has been released on the App Store</title><description>&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=301801275&amp;mt=8"&gt;barablu&lt;/a&gt; my ancient  work (which is probably not my work anymore) which has been developed since about last year around April before the release of iPhone 3G is finally released on the App Store.&lt;br /&gt;&lt;br /&gt;Several things has been changed in their UI design, and probably some backend code has also changed since I was working on it. The last thing I remember was the frustration in the client - server voice call protocols issue. Well, finally they're able to resolve it, I assume.&lt;br /&gt;&lt;br /&gt;There are some usability issues though, but well I don't really care anymore.&lt;br /&gt;&lt;br /&gt;Moving on...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-8913256173499092635?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/-H0fe2wr4IQ/my-ancient-work-barablu-has-been.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/07/my-ancient-work-barablu-has-been.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-8750484891772229750</guid><pubDate>Wed, 01 Jul 2009 20:08:00 +0000</pubDate><atom:updated>2009-11-16T15:39:08.947+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Work</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Most of the "executable" ideas came from what we need</title><description>Unlike most of those talented software engineers that are living and breathing through their own startups, or independent projects, most of the average software developers/engineers that I had known are spending most of their time looking for "employer" or "somebody" to gave them a fixed salary every month, to keep them safe, and also to give them "something" to answer to their relatives or friends about "where do you work? what is your job?" &lt;br /&gt;
&lt;br /&gt;
While actually, they're subconsciously looking for their purpose or their self-identity.&lt;br /&gt;
&lt;br /&gt;
I was once that kind of engineer, though maybe I'm still that kind of engineer ? Not really sure, but the point is, the more I'm involved in my field, the more focused I'm to only dedicate my time into those people or employer that has the similar mindset as I am. &lt;br /&gt;
&lt;br /&gt;
This, reminded me of some people that had given me advice to "go out of focus", which is another word for pursuing another path in software engineering. If it's only meant to be as a "safety mechanism", then I will blatantly say &lt;span style="font-weight:bold;"&gt;no&lt;/span&gt; :-). Changing my focus will decrease my quality, and that's a lot worse than not having a full-time job. I also make this decision, because I want to look beyond what's in front of me.&lt;br /&gt;
&lt;br /&gt;
Aside from all of those activities that are on the "bottom line" needs to be done to fund my life, and to kept me survived, I found that I should not spend too much time on the "searching" process. Because I will waste lots of time on convincing that I'm useful for them, that I deserve some "monetary" value from them, unless if they told me so :-).&lt;br /&gt;
&lt;br /&gt;
So, I should "do" something, "work" on something, and I shouldn't get stuck on looking for ideas that will have a commercial potential. Instead, things will be more simple and executable, if I just work on what I need and what I tend to think about.&lt;br /&gt;
&lt;br /&gt;
I see lots of useful software or iPhone apps (if we're talking about my recent focus on iPhone) that could only be gained by paying some price. &lt;br /&gt;
&lt;br /&gt;
Well, instead of looking for ways to get them for free (like all of those crackers had done), why not try to write one myself? No matter how "dull" it will look, or how "lame" it's compared to the available software out there, I will spend a bit of my time to work on it, improve it, and if I decide it's useful to other people, I could either commercialize it or open-sourced it (if it does in the good form to be open-sourced).&lt;br /&gt;
&lt;br /&gt;
Eventually, if my work does proved to be good, I don't really need lots of searching process to convince someone, or some group of people that I'm good. Because, I will feel satisfied with my own property, my own software, that's usable for other people.&lt;br /&gt;
&lt;br /&gt;
Though, this is not an easy thing to do. I've been procrastinating a lot, and unable to focus and follow through my ideas as I expect it should be in the beginning, self-sustainability should be our mindset as a software engineer. &lt;br /&gt;
&lt;br /&gt;
The point is, if you keep on wondering on "when will I get my salary raise?", then you will never get it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-8750484891772229750?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/WAfMZQ1qYQA/most-of-executable-ideas-came-from-what.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/07/most-of-executable-ideas-came-from-what.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-9036963214919179931</guid><pubDate>Fri, 01 May 2009 06:04:00 +0000</pubDate><atom:updated>2009-10-28T03:54:46.317+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>Prompt 0.9</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OsuhH8p7v3g/Sfs94LSrnFI/AAAAAAAAAEM/XQq1LTcL97o/s1600-h/welcome-screen.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 222px; height: 320px;" src="http://1.bp.blogspot.com/_OsuhH8p7v3g/Sfs94LSrnFI/AAAAAAAAAEM/XQq1LTcL97o/s320/welcome-screen.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5330922619236228178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OsuhH8p7v3g/Sfs7sLYDNOI/AAAAAAAAAEE/KkizUaiKq90/s1600-h/quote.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 222px; height: 320px;" src="http://1.bp.blogspot.com/_OsuhH8p7v3g/Sfs7sLYDNOI/AAAAAAAAAEE/KkizUaiKq90/s320/quote.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5330920214077060322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally, my next iPhone app is released, it's called "Prompt".&lt;br /&gt;&lt;br /&gt;I came up with this idea, when I think that I've spent most of my time in the world of programming, and software engineering. Despite that, I'm still in my early stage of my career, I've been witnessing various characteristics of software developers, software development managers, and companies.&lt;br /&gt;&lt;br /&gt;I came across various programming quotes, jokes, and trivia (serious / not) scattered everywhere, with this app, I'm trying to collect all of them in one iPhone app.&lt;br /&gt;&lt;br /&gt;For the User Interface, I thought that "Why not make it look like it's for programmers?", then I came up with a very simple UI, yet resembles a "terminal", though I can't incorporate most of the functionality of a real terminal, because that would be a very long work for myself alone.&lt;br /&gt;&lt;br /&gt;Additionally, I'm trying to gather more of it (for now through twitter), through the posting section.&lt;br /&gt;&lt;br /&gt;Here's the &lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=313409214&amp;amp;mt=8"&gt;App Store link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-9036963214919179931?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/6bMjn173g_U/prompt-09.html</link><author>noreply@blogger.com (Jesse)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_OsuhH8p7v3g/Sfs94LSrnFI/AAAAAAAAAEM/XQq1LTcL97o/s72-c/welcome-screen.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/05/prompt-09.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-3883064755734032381</guid><pubDate>Sun, 12 Apr 2009 18:41:00 +0000</pubDate><atom:updated>2009-10-31T16:01:02.417+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Web</category><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>CouchApps, CouchDB, Web 3.0, iPhone</title><description>I came across an interesting blog by Jens Alfke, which shows the thoughts of &lt;a href="http://mooseyard.com/Jens/2009/02/what-will-web-30-be/"&gt;Web 3.0&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
And his thoughts on &lt;a href="http://mooseyard.com/Jens/2008/04/cloudy-as-buzzwords/"&gt;distributed and decentralized cloud system&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Now as we relate Couch (Cluster Of Unreliable Commodity Hardware) Apps, CouchDB as a document oriented database system, Web 3.0, and iPhone, the iPhone is a good medium where we can deploy apps or distributed system that doesn't require or even avoid the centralized services as we used to know. Because when we have all of the data on our side, this will provide better privacy and security compared to centralized services.&lt;br /&gt;
&lt;br /&gt;
We can run a standalone online game, social networking or messaging application which can communicate to its surroundings of iPhone users, or any device which can communicate with iPhone / iPod Touch. Though, in this situation CouchDB might not be required, because the iPhone itself already possess the API needed for this purpose, especially with the upcoming iPhone OS 3.0.&lt;br /&gt;
&lt;br /&gt;
Aside from all of that, it's interesting to see the possibilities of CouchDB which will provide support for the new type of P2P, social networking or messaging system software. &lt;br /&gt;
&lt;br /&gt;
As I understand, there's no issue of concurrency as encountered in regular database updates, though modern database has addressed this issue with Multiversion concurrency control (MVCC).&lt;br /&gt;
&lt;br /&gt;
But, the main advantage is, you can run your own web applications or services on your own, and replicate it easily to another host. The point is, it's a lot simpler than setting up your own web server, database, etc.&lt;br /&gt;
&lt;br /&gt;
Though, in this case, there will be weakness in whether the concept applies to gathering up user base and charge them for our services ? Like in most centralized services do.&lt;br /&gt;
&lt;br /&gt;
Update: I still could not see the advantage of providing a complete CouchDB solution (client-server) for the iPhone (Core Data, SQLite, and other ways of storage like using plist files are sufficient in most cases). Although you can use a CouchDB client on the iPhone to access CouchDB server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-3883064755734032381?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/QfiGOG1P4mE/couchdb-web-30-iphone.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/04/couchdb-web-30-iphone.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-1006662617840513548</guid><pubDate>Wed, 08 Apr 2009 09:45:00 +0000</pubDate><atom:updated>2009-04-09T03:34:43.590+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>iPhone Dev Center annoying problem</title><description>I want to write this since I have been having problems downloading the iPhone SDK from iPhone Dev Center, and many other people are having the similar problems.&lt;br /&gt;&lt;br /&gt;As you know, if you hover over the link in the Download button, you will have this link:&lt;br /&gt;&lt;br /&gt;http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk_version/iphone_sdk_version.dmg&lt;br /&gt;&lt;br /&gt;This will save you some time in google search, and asking questions on forums as Apple is not responsive enough resolving this issue. &lt;br /&gt;&lt;br /&gt;So the trick is by using http://adcdownload.apple.com, with the value of the "path=..." appended to it.&lt;br /&gt;&lt;br /&gt;Example (you need to be in the same login session of the browser):&lt;br /&gt;&lt;br /&gt;http://adcdownload.apple.com/iphone/iphone_sdk_version/iphone_sdk_version.dmg&lt;br /&gt;&lt;br /&gt;Then, you just need to visit this link to get out of that annoying problem on iPhone Dev Center. This only works for iphone sdk download, while in the past there have been issues of relogin, or the user is logged out after the user is logged in, when navigating through iPhone Dev Center.&lt;br /&gt;&lt;br /&gt;After a quick research, I found a clue:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.whirlpool.net.au/forum-replies-archive.cfm/1022884.html"&gt;iPhone Dev Center &amp; TPG Proxy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;narcan writes...&lt;br /&gt;&lt;br /&gt;I think your explanation is probably whats happening, where they are tying the session to the IP probably in order possibly to try and prevent against XSS type vulnerabilities.&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;As a web developer this exactly what i concluded immediately.&lt;/span&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;narcan writes...&lt;br /&gt;&lt;br /&gt;So I guess both Apple and TPG are at fault here.&lt;br /&gt;&lt;br /&gt;I wonder how this could be solved ?&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;I'd say it's more Apple's fault for a poor authentication method. Unlike places like private torrent trackers and the likes, Apple has absolutely no need to authenticate using IP. However, TPG still is the reason the problem exists, it's merely a side effect of their design decisions (proxies etc)&lt;/span&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;narcan writes...&lt;br /&gt;&lt;br /&gt;I doubt Apple doing anything about it.&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Well I've had about 7 email back and forth with the ADC tech team (each one getting ruder and ruder on my behalf which seems to get the emails sent up higher and higher). Hopefully I'll cause enough of a racket that they'll reconsider how their authentication scheme operates&lt;/span&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;narcan writes...&lt;br /&gt;&lt;br /&gt;Maybe the best workaround (which I haven't tried) is just manually setting the TPG proxy to use, assuming this works...&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Unfortunately, I had no luck with this method. I usually set a static proxy anyway, so i wouldn't mind this as a fix. I don't think the problem is that our requests to apple are coming through a different proxy IP each time, so much as one part of their code checks our real IP, the other checks the proxy IP. Even with a statically set proxy the IPs don't match up.&lt;/span&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I believe the same case is also happening in Singapore's ISP, such as Starhub, or Singtel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-1006662617840513548?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/Rvio1opAmVI/iphone-dev-center-annoying-problem.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/04/iphone-dev-center-annoying-problem.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-8272416479365637560</guid><pubDate>Thu, 12 Feb 2009 09:17:00 +0000</pubDate><atom:updated>2009-09-08T01:36:33.654+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>IBM extends iPhone dev to Windows ? Linux is fine.</title><description>I came across &lt;a href="http://theappleblog.com/2008/10/07/ibm-extends-iphone-development-to-windowslinux-programmers/"&gt;this&lt;/a&gt; on appleblog, which I still think would be another effort to maintain the status quo of some people who just doesn't want to adopt new things, no matter how better / worse it's.&lt;br /&gt;&lt;br /&gt;Just think of it in a simple way. If you want to publish apps on the App Store, hence you will be using Apple’s infrastructure and service, then follow Apple’s guidelines.&lt;br /&gt;&lt;br /&gt;If you want to distribute apps on your own, and you “hate Mac”, just use the available toolchain out there, and distribute through whatever means that you want.&lt;br /&gt;&lt;br /&gt;If you want standard things, don’t jailbreak, if you want cool things, jailbreak, that simple.&lt;br /&gt;&lt;br /&gt;Everybody could decide on their own for whatever they want to do on their own iPhone, just understand the risks and advantages.&lt;br /&gt;&lt;br /&gt;I personally think that Apple is endorsing people to use their hardware too (Mac and iPhone), they want to gain market share, so I doubt, they will help people to develop iPhone application on Windows.&lt;br /&gt;&lt;br /&gt;If you’re just an average user, it’s a lot better for you just to buy a Mac with the iPhone, it’s a lot easier for you, though it costs you more money. Apple is offering convenience, and they also want to compete with other platforms, though some people doesn’t like it.&lt;br /&gt;&lt;br /&gt;Besides, if I want to develop on iPhone, I would rather use Mac or Linux, what’s in it for me to use Windows ? There are not many tools in windows to manipulate iPhone (unless if you install Cygwin, but it's still a lot less powerful than Linux).&lt;br /&gt;&lt;br /&gt;Anyway, if anyone doesn't like Apple, just work on other things non-Apple, why force yourself into a path that you don't like. &lt;br /&gt;&lt;br /&gt;Besides, don't tell me that we don't need to use Objective-C for iPhone, because C++ is object oriented too. Another thing, don't even cry baby to ask for the support of Java on iPhone. Though, someone was able to support Java on iPhone.&lt;br /&gt;&lt;br /&gt;Notes (though all of these are either illegal or not supported by Apple):&lt;br /&gt;- You can install OSX86 on a generic intel platform, and develop for iPhone with a cheaper cost.&lt;br /&gt;- You can use linux to develop for iPhone with "zero" price.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-8272416479365637560?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/z-kVG9OYSqM/ibm-extends-iphone-dev-to-windows-linux.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2009/02/ibm-extends-iphone-dev-to-windows-linux.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-2439633303216493082</guid><pubDate>Mon, 08 Dec 2008 09:39:00 +0000</pubDate><atom:updated>2009-09-27T14:51:51.125+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Work</category><title>Lack of features from the iPhone SDK (part 1) - Sliding pop up picker view</title><description>In my iPhone development endeavors, and this may also be the case with other developers who's scratching their head on how to implement several cool UIs existed on built-in iPhone application.&lt;br /&gt;&lt;br /&gt;One example would be Safari, wouldn't it be nice if you have a simple UIKit interface to achieve the functionality as those we had seen if we tap a combo box in a webpage ?&lt;br /&gt;&lt;br /&gt;As I'm not sure if any developers had already done this, the point is, it's hard for me to find how to implement this easily without flaws, so I might well post about this, and if it doesn't attract anyone attention, I'll just wait for Apple to answer my enhancement request.&lt;br /&gt;&lt;br /&gt;I'll start with the following code snippet, basically what I was trying to do is creating a UIView subclass which can be manipulated (by adding subviews, toolbar, and buttons) by animation.&lt;br /&gt;&lt;br /&gt;To achieve this, we'll use transition animation of Core Animation with CATransition class.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;- (void)showPickerWithPopUpView:(PopUpView *)aPopUpView&lt;br /&gt;{&lt;br /&gt;    self.popUpView = aPopUpView;&lt;br /&gt;&lt;br /&gt;    id delegate = [[UIApplication sharedApplication] delegate];&lt;br /&gt;&lt;br /&gt;    CATransition *popUpTransition = [CATransition animation];&lt;br /&gt;    popUpTransition.type           = kCATransitionMoveIn;&lt;br /&gt;    popUpTransition.subtype        = kCATransitionFromTop;&lt;br /&gt;    popUpTransition.duration       = 0.2;&lt;br /&gt;    popUpTransition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];&lt;br /&gt;&lt;br /&gt;    [[delegate window] addSubview:aPopUpView];&lt;br /&gt;&lt;br /&gt;    /* Here we're adding the animation of the pop up view CALayer layer object. */&lt;br /&gt;    [[aPopUpView layer] addAnimation:popUpTransition forKey:kCATransition];&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above code seems odd to me, as I don't know why I need to use the kCATransitionFromTop for a view animation that will slide from the bottom. Meanwhile the other constants for "type" and "timingFunction" are straightforward, as directly interpreted from Apple docs.&lt;br /&gt;&lt;br /&gt;The following is a method call to remove the pop up view from the superview, which is the application delegate window.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;- (void)hidePickerWithPopUpView:(PopUpView *)aPopUpView&lt;br /&gt;{&lt;br /&gt;    [aPopUpView removeFromSuperview];&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now, normally we need a smooth sliding out transition to remove this pop up view from its superview. But, unfortunately, no matter how I used the CATransition, I still couldn't achieve that functionality. If it's removed from the superview, it's removed, there's no animation that will affect its removal.&lt;br /&gt;&lt;br /&gt;The following is a basic interface of PopUpView, which could be used as a content view for picker views, or any other type of views.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@interface PopUpView : UIView {&lt;br /&gt;&lt;br /&gt;    UIBarButtonItem *dismissButton; /* We need a dismiss button to dismiss the picker view */&lt;br /&gt;    UIToolbar *toolbar; /* A toolbar to host the button */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@property (nonatomic, retain) UIBarButtonItem *dismissButton;&lt;br /&gt;@property (nonatomic, retain) UIToolbar *toolbar;&lt;br /&gt;&lt;br /&gt;@end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;PickerType is basically an enumeration type for each type of picker.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;typedef enum {&lt;br /&gt;    PickerTypeStandard = 0,&lt;br /&gt;    PickerTypeDate = 1&lt;br /&gt;} PickerType;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now all we need is just a view controller that will create the picker view, handle the picker view delegate, and add the picker view to the pop up view.&lt;br /&gt;&lt;br /&gt;So, the above scheme will achieve what is there on Safari, but unfortunately I can't post a complete code, as my implementation is still messy, and it's still not proper for public consumption. But at least, this is a good start.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-2439633303216493082?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/QM6jYmGzV5A/lack-of-features-from-iphone-sdk-part-1.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2008/12/lack-of-features-from-iphone-sdk-part-1.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-4700948872146722085</guid><pubDate>Sat, 04 Oct 2008 09:51:00 +0000</pubDate><atom:updated>2008-10-27T17:24:32.877+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>Tough competition on App Store, but it's worth it</title><description>Back in the day where applications development and distribution are decentralized, the most determining factors are the efforts of the developers / producers / authors itself.&lt;br /&gt;&lt;br /&gt;But now, the hype of iPhone really changed this culture. With so many people influenced by the beauty of iPhone, it drives lots of entrepreneurs, developers, companies to make its presence on iPhone. This is a good thing, but as I said a culture is changed:&lt;br /&gt;&lt;br /&gt;- There's a bottleneck in the process of release, and distribution, which is the "App Store" itself (There are many stories on this, I won't repeat that again).&lt;br /&gt;&lt;br /&gt;- iPhone device scarcity, not everyone could get a chance to develop on iPhone, well this is also the case in other platforms, but iPhone OS platform has more limitations to reach wider developers audience all over the world, except early adopters or those who are willing to spend more monies, and more time.&lt;br /&gt;&lt;br /&gt;- People go to Apple (App Store &amp; iTunes), to look up through what they're looking for, meanwhile every references of "App Store" on each of websites promoting their apps are complementary information.&lt;br /&gt;&lt;br /&gt;- Independent developers, &lt;span style="font-weight:bold;"&gt;but only those who got a chance&lt;/span&gt; could enjoy this environment, which really moves lots of burden in distribution, marketing, and promotion to 3rd party, which is Apple.&lt;br /&gt;&lt;br /&gt;- Apple gains more publicity and monies, great strategy.&lt;br /&gt;&lt;br /&gt;In my own opinion, iPhone is a great device, great platform, and if you don't like the App Store, jailbreak it, and distribute yourself. So far, Apple had not done anything significant to stop that. Its darwin kernel based (also used in BSD OSes) mobile OS, really support this kind of activitiy.&lt;br /&gt;&lt;br /&gt;Unless if Android, followed a similar (maybe better) business model, but with better flexibility and reachability, I doubt, there would be any new device / platform that could compete with iPhone, in terms of popularity, and attraction (not just for developers) to develop on this platform.&lt;br /&gt;&lt;br /&gt;In order to compete, I think Google should be able to launch an "ultimate device", like "GPhone" which has been mentioned several times ago.&lt;br /&gt;&lt;br /&gt;With the hype of "GPhone", and the release of Android OS for a wider audience of developers, handset manufacturers, complemented with a good system in Android Market, this could be a serious competitor. Too bad for Google, people don't care about the "brain", they only care about the "looks", that's why iPhone is still the best.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-4700948872146722085?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/ZtBBFoITLuc/tough-competition-on-app-store-but-its.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2008/10/tough-competition-on-app-store-but-its.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-3789603225512380857</guid><pubDate>Sun, 17 Aug 2008 06:08:00 +0000</pubDate><atom:updated>2009-07-02T04:10:14.126+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VoIP</category><category domain="http://www.blogger.com/atom/ns#">OpenSIPS</category><title>OpenSIPS, new breed of communication engine</title><description>I was surprised when I visit &lt;a href="http://openser.org"&gt;openser.org&lt;/a&gt;. I think I remember that the last time I check around July, this is called OpenSER :-). I just got an idea to visit it, when I'm curious why I failed to update my APT repository from openser.org. Well this is interesting, and it's a sign that OpenSER is getting mature.&lt;br /&gt;&lt;br /&gt;This is what they said:&lt;br /&gt;&lt;blockquote&gt;OpenSIPS (Open SIP Server) is a mature Open Source implementation of a SIP server. OpenSIPS is more than a SIP proxy/router as it includes application-level functionalities. OpenSIPS, as a SIP server, is the core component of any SIP-based VoIP solution. With a very flexible and customizable routing engine, OpenSIPS unifies voice, video, IM and presence services in a highly efficient way, thanks to its scalable and modular design.&lt;/blockquote&gt; &lt;br /&gt;&lt;br /&gt;It turns out that this is a fork of OpenSER project:&lt;br /&gt;&lt;blockquote&gt;OpenSIPS is an industry grade SIP server, unifying under one roof voice, video, IM and presence. Recently, OpenSIPS launched as a fork of the previously OpenSER project, following a will of cofounder Bogdan-Andrei Iancu to boost the quality and features of OpenSER.&lt;/blockquote&gt; &lt;br /&gt;&lt;br /&gt;The original OpenSER project still exist under the name &lt;a href="http://www.kamailio.org"&gt;Kamailio&lt;/a&gt;. Finally I found out that they were having some problems with trademark. But, why there are separations between Kamailio and OpenSIPS ?&lt;br /&gt;&lt;br /&gt;I don't know yet, but probably &lt;a href="http://blog.krisk.org/2008/08/openser-update.html"&gt;this blog&lt;/a&gt; could be some of the clues.&lt;br /&gt;&lt;br /&gt;For me, as I'm now just an observer and a user, both projects won't have too much differences, though it seems OpenSIPS have some kind of plans for the future, while Kamailio is just a project rename.&lt;br /&gt;&lt;br /&gt;As I read on kamailio.org:&lt;br /&gt;&lt;blockquote&gt;Kamailio is a hawaiian word. Kama'ilio means talk, to converse. It was chosen for its special flavour. It is hopefully easy to remember and the meaning fits well with the project purpose. We hope you like it too!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I'm not sure it's a good name :-), we'll see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-3789603225512380857?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/fmFE8aLXmPM/opensips-new-breed-of-communication.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2008/08/opensips-new-breed-of-communication.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-7266912470646182401</guid><pubDate>Sun, 13 Jul 2008 09:27:00 +0000</pubDate><atom:updated>2009-07-02T04:09:48.414+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VoIP</category><category domain="http://www.blogger.com/atom/ns#">OpenSER</category><title>Setting up your own IP Telephony system, quickly :-)</title><description>During the time I got bored with waiting for my Apple iPhone developer's certificate, I tried and played a bit with something quite interesting that I have been trying to get my hands into it for many times ago but never actually set it up, and that is OpenSER.&lt;br /&gt;&lt;br /&gt;Now what is OpenSER ? for short:&lt;br /&gt;OpenSER is one of the best SIP Proxies in the market. It is robust, scalable, and licensed according to GNU GPL. &lt;br /&gt;&lt;br /&gt;If you really want to know the details of what it is, I suggest you visit &lt;a href="http://www.openser.org"&gt;OpenSER website&lt;/a&gt; and read a book by Flavio E. Goncalves with the title "Building Telephony Systems with OpenSER", because that book is the basic of my knowledge of OpenSER, and information on how to setup and configure it, in this post.&lt;br /&gt;&lt;br /&gt;And what is SIP proxy ? in the context of VoIP provider:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OsuhH8p7v3g/SHnYSAso5qI/AAAAAAAAABk/4VH0Gt3MmGU/s1600-h/sip-proxy.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_OsuhH8p7v3g/SHnYSAso5qI/AAAAAAAAABk/4VH0Gt3MmGU/s320/sip-proxy.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5222443046849275554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So basically by using this SIP Proxy, a user agent A/caller A will initiate its communication to user agent B/callee B by sending request to the SIP proxy, which in turn will find the address of user agent B on its registration database, and send back this information as a response to user agent A, so both user agents can start communicating with each other.&lt;br /&gt;&lt;br /&gt;For those familiar with OSI model, the following image describes where OpenSER is located in the hierarchy:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OsuhH8p7v3g/SHoyOCShRrI/AAAAAAAAABs/nTULyqfnqKA/s1600-h/OSI-OpenSER.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_OsuhH8p7v3g/SHoyOCShRrI/AAAAAAAAABs/nTULyqfnqKA/s320/OSI-OpenSER.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5222541934603617970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We all know about the trends of VoIP that I feel doesn't seem to show any massive usage by today's society. Though I know, that this technology will someday replace our traditional PSTN, and will become the integrating factor with cellular network. Anybody in the telecomm fields know that, and in this post, I'm just going to write how easy it is to set up your own Telephony system. &lt;br /&gt;&lt;br /&gt;All you need to have is:&lt;br /&gt;- a PC with internet access, and according to the book, &lt;br /&gt;&lt;br /&gt;"A PC with the following specifications was capable of 28 million complete calls per hour. The testing server was an ordinary desktop, Intel Core2 CPU 6300 @ 1.86GHz, 1GB of memory, 100Mbs Ethernet card"&lt;br /&gt;&lt;br /&gt;While I'm using quite the same specifications as that.&lt;br /&gt;&lt;br /&gt;- OpenSER installation source at &lt;a href="http://www.openser.org/mos/view/Download/"&gt; http://www.openser.org/mos/view/Download/&lt;/a&gt;&lt;br /&gt;- a running Linux OS.&lt;br /&gt;- an SQL database server.&lt;br /&gt;&lt;br /&gt;But to make this easier for you:&lt;br /&gt;- Install debian linux, and you can easily obtain OpenSER from debian APT repository at deb http://www.openser.org/debian etch main&lt;br /&gt;- MySQL as a database server.&lt;br /&gt;&lt;br /&gt;Here's a &lt;a href="http://www.oldskoolphreak.com/tfiles/voip/beginners_openser.txt"&gt;beginners guide on OpenSER setup&lt;/a&gt;. Basically there's not much to change on the default configuration on OpenSER debian package installation results, to setup a basic OpenSER system.&lt;br /&gt;&lt;br /&gt;Several things that you need to pay attention to is: &lt;br /&gt;&lt;br /&gt;- Install openser-mysql module and run the /usr/sbin/openserdbctl to set up the MySQL database specifically for openser.&lt;br /&gt;&lt;br /&gt;- Open up the /usr/local/etc/opernser.cfg file with your&lt;br /&gt;favorite text editor, and comment/uncomment some lines to enable MySQL&lt;br /&gt;support. You will have to uncomment the following lines:&lt;br /&gt;&lt;br /&gt;loadmodule "/usr/lib/openser/modules/mysql.so"&lt;br /&gt;loadmodule "/usr/lib/openser/modules/auth.so"&lt;br /&gt;loadmodule "/usr/lib/openser/modules/auth_db.so"&lt;br /&gt;modparam("auth", "calculate_ha1", yes)&lt;br /&gt;modparam("auth_db", "password_column", "password")&lt;br /&gt;&lt;br /&gt;if (!www_authorize("sip.org", "subscriber")) {&lt;br /&gt;    www_challenge("sip.org", "0");&lt;br /&gt;    break;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;Of course, you need to change "sip.org" into your own domain name, I use my debian machine IP address as a domain.&lt;br /&gt;&lt;br /&gt;- To disable plain text storage on the database and use encrypted password, change the above line to:&lt;br /&gt;modparam("auth", "calculate_ha1", 0)&lt;br /&gt;modparam("auth_db", "password_column", "ha1")&lt;br /&gt;&lt;br /&gt;In the file /etc/openser/openserctlrc, be sure to leave this line uncommented:&lt;br /&gt;STORE_PLAINTEXT=0&lt;br /&gt;&lt;br /&gt;- Comment out the following line:&lt;br /&gt;modparam("usrloc", "db_mode", 0) &lt;br /&gt;-&gt; This will disable the use of memory for user registration storage (which in effect will cause your user registration data being lost if you stop the OpenSER server).&lt;br /&gt;&lt;br /&gt;- Uncomment the following line:&lt;br /&gt;modparam("usrloc", "db_mode", 2) -&gt; To enable database persistency.&lt;br /&gt;&lt;br /&gt;Now that you have correctly setup /etc/openser/openser.cfg for your own domain, and by following the guidelines on the link that I have given earlier, you would have a running SIP proxy server.&lt;br /&gt;&lt;br /&gt;Start testing by adding user to the database, using &lt;br /&gt;/usr/sbin/openserctl&lt;br /&gt;&lt;br /&gt;openserctl add userA userA userA@sip.org&lt;br /&gt;openserctl add userB userB userB@sip.org&lt;br /&gt;&lt;br /&gt;I had tried to test it using Siphon on iPhone, and Twinkle on Linux as user agents, and it works great. So now I'm looking forward for more features on this system like presence, and authentication using Radius server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-7266912470646182401?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/Cns3oKEM36w/setting-up-your-own-ip-telephony-system.html</link><author>noreply@blogger.com (Jesse)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_OsuhH8p7v3g/SHnYSAso5qI/AAAAAAAAABk/4VH0Gt3MmGU/s72-c/sip-proxy.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2008/07/setting-up-your-own-ip-telephony-system.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-1537207559118434908</guid><pubDate>Sat, 21 Jun 2008 15:00:00 +0000</pubDate><atom:updated>2008-07-28T00:35:10.880+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><title>Peter Norvig's recipe on programming success</title><description>&lt;span style="font-size:100%;"&gt;&lt;br /&gt;I was reading Peter Norvig's essay with the title "Teach Yourself Programming in Ten Years", and I quote one important point :&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;The conclusion is that either people are in a big rush to learn about computers, or that computers are somehow fabulously easier to learn than anything else.  There are no books on how to learn Beethoven, or Quantum Physics, or even Dog Grooming in a few days.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;I understand this conclusion, and I also had witness how college students / people around me who tried to enter into the programming world by looking at what's popular, what's advertised by several popular companies, like Sun with its Java certification, Microsoft with its arrays of widely used software development technologies (.NET Framework, C#, Visual Basic, etc.). They were doing this by trying to learn all of it at a very short time, and they feel that they're job is finished by holding several certifications from Sun, Microsoft, and others which I don't pay attention to. So I agree when he also write:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;Walk into any bookstore, and you'll see how to &lt;i&gt;Teach Yourself Java in 7 Days&lt;/i&gt; alongside endless variations offering to teach Visual Basic, Windows, the Internet, and so on in a few days or hours.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"  &gt;The point is, as you can also read on the &lt;a href="http://www.norvig.com/21-days.html"&gt;essay&lt;/a&gt;, you can't be an expert just by reading a book in 7 days, 30 days, or whatever they written on the title. Also, you can't be an expert just by passing Sun's Java certification exam, or just because you had completed a project assigned by your bosses, managers, professors, or teachers. There are no shortcuts, and as my experiences really shows me, there will always something that either you hadn't known, or it's in your head but you never used it in practice, and as you kept on involving yourself in this field, as you meet new people with new experiences / expertise, you will find out that the learning never ends. If you really feel that it ends, then you're stuck or something is mentally blocking your mind to learn.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Ok, here's Peter Norvig's recipe for programming success.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Get interested in programming, and do some because it is fun.  Make sure that it keeps being enough fun so that you will be willing to put in ten years.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Talk to other programmers; read other programs.  This is more important than any book or training course.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Program.  The best kind of learning is &lt;a href="http://www.engines4ed.org/hyperbook/nodes/NODE-120-pg.html"&gt;learning by doing&lt;/a&gt;.  To put it more technically, "the maximal level of performance for individuals in a given domain is not attained automatically as a function of extended experience, but the level of performance can be increased even by highly experienced individuals as a result of deliberate efforts to improve." &lt;a href="http://www2.umassd.edu/swpi/DesignInCS/expertise.html"&gt;(p. 366)&lt;/a&gt; and "the most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors." (p. 20-21)  The book &lt;i&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0521357349"&gt;Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life&lt;/a&gt;&lt;/i&gt; is an interesting  reference for this viewpoint.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; If you want, put in four years at a college (or more at a graduate school).  This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don't enjoy school, you can (with some dedication) get similar experience on the job. In any case, book learning alone won't be enough. "Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter" says Eric Raymond, author of &lt;i&gt;The New Hacker's Dictionary&lt;/i&gt;. One of the best programmers I ever hired had only a High School degree; he's produced a lot of &lt;a href="http://www.xemacs.org/"&gt;great&lt;/a&gt; &lt;a href="http://www.mozilla.org/"&gt;software&lt;/a&gt;, has his own &lt;a href="http://groups.google.com/groups?q=alt.fan.jwz&amp;amp;meta=site%3Dgroups"&gt;news group&lt;/a&gt;, and made enough in stock options to buy his own &lt;a href="http://en.wikipedia.org/wiki/DNA_Lounge"&gt;nightclub&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others.  When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision.  When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Work on projects &lt;i&gt;after&lt;/i&gt; other programmers. Be involved in understanding a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain it after you.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Learn at least a half dozen programming languages.  Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Remember that there is a "computer" in "computer science". Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk. (&lt;a href="http://www.norvig.com/21-days.html#answers"&gt;Answers here.&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Get involved in a language standardization effort.  It could be the ANSI C++ committee, or it could be deciding if your local coding style will have 2 or 4 space indentation levels.  Either way, you learn about what other people like in a language, how deeply they feel so, and perhaps even a little about why they feel so.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Have the good sense to get off the language standardization effort as quickly as possible.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-1537207559118434908?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/-EFH6YB4T5Q/peter-norvigs-recipe-on-programming.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2008/06/peter-norvigs-recipe-on-programming.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-4207250341956584606</guid><pubDate>Sat, 19 Apr 2008 15:13:00 +0000</pubDate><atom:updated>2009-09-27T14:58:59.493+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iPhone</category><title>New device, new programming language (at least for me)</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OsuhH8p7v3g/SAoP8jgZA1I/AAAAAAAAABU/2CWTb7JSWCg/s1600-h/iphonekeynote.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 324px; height: 206px;" src="http://4.bp.blogspot.com/_OsuhH8p7v3g/SAoP8jgZA1I/AAAAAAAAABU/2CWTb7JSWCg/s320/iphonekeynote.jpg" alt="" id="BLOGGER_PHOTO_ID_5190979053495583570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As maybe one in some amount of Indonesians that could get his hands on iPhone device, I maybe lucky enough to get a chance to develop a native application on this new and exciting mobile platform.&lt;br /&gt;&lt;br /&gt;But, before I brag about how cool / great iPhone is, there are some things that make some developers feel a little bit disappointed:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;First of all, it's a very long time to get Apple's official permission to develop apps on this device, they had said to launch an official SDK release on June.&lt;/li&gt;&lt;li&gt;We need to pay USD $99 developer's certificate to be able to "officially" run, install, and distribute our apps on the device. As &lt;a href="http://arstechnica.com/news.ars/post/20080306-live-coverage-of-the-iphone-software-roadmap-announcement.html"&gt;Ars Technica&lt;/a&gt; reports &lt;span style="font-weight: bold;"&gt;"Developers have to register with [Apple]. For that $99, we give them an electronic certificate that tells us who they are .... if they write a bad app, we can both track them down and we can turn off the app's distribution"&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Guess what, for now they only allowed US developers to enter their iPhone developer program (the $99 that I have been mentioned in point 2).&lt;/li&gt;&lt;li&gt;You'll need not only &lt;span style="font-weight: bold;"&gt;Leopard &lt;/span&gt;but also &lt;span style="font-weight: bold;"&gt;Intel-based&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Mac&lt;/span&gt; to run the SDK.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For those developers who are just too lazy to learn and gaining new skills, it would be a pain for them to develop user interface in objective-C. Although, when you get to know the language, it's quite similar to what you had seen in other object-oriented languages.&lt;/li&gt;&lt;/ol&gt;Despite all of these limitations, iPhone technology, its operating system, and user interface, would trigger any motivated hackers / developers to create solutions to overcome all of these restrictions.&lt;br /&gt;&lt;br /&gt;One of the team that is well known to provide these kinds of solutions is &lt;a href="http://iphone-dev.org/"&gt;iPhone Dev Team&lt;/a&gt;. There are also open source projects pioneered by member of iPhone Dev Team in google code (&lt;a href="http://code.google.com/p/iphone-dev/"&gt;iphone-dev&lt;/a&gt; and &lt;a href="http://code.google.com/p/iphone-elite/"&gt;iphone-elite&lt;/a&gt;). So by using their solutions, basically we can use most part of the SDK on any iPhone OS version (currently, the SDK is provided for only iPhone version 1.2.0 firmware or OS 2.0), on Mac OS X Tiger / Leopard with Xcode 2.4 / 2.5 / 3.0 / 3.1 IDE.&lt;br /&gt;&lt;br /&gt;To install our unofficial apps, we could use &lt;span style="font-weight: bold;"&gt;"Installer.app" &lt;/span&gt;from &lt;a href="http://iphone.nullriver.com/beta/"&gt;Nullriver Software&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ok, all of those jailbreaking, unlocking, and hacking procedures is available everywhere on the internet. What I want to write on my blog now is my personal opinion and experience on this iPhone device as a development platform.&lt;br /&gt;&lt;br /&gt;Overall, it's very good to have a mobile platform for software development that's very close to what you expect when you develop on the desktop platform (the Mac OS X). iPhone has a quite similar look and feel, file system structure, programming language, Developer Tools and API to Mac OS X.&lt;br /&gt;&lt;br /&gt;Of course, there are several differences that you need to pay attention for (as I quote from iPhone OS Programming Guide on Apple's developer documentation), which is related to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;runtime environment&lt;/li&gt;&lt;li&gt;memory usage&lt;/li&gt;&lt;li&gt;performance &amp;amp; responsiveness&lt;/li&gt;&lt;li&gt;file &amp;amp; data management&lt;/li&gt;&lt;li&gt;security&lt;/li&gt;&lt;li&gt;user interface considerations&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Moreover, what is cool about this device is you can use the usual BSD or Unix-like tools to do "something" with the OS and applications. These possibilities are quite rare on a smartphone that was supposed to be a "closed platform" with cool user interface.&lt;br /&gt;&lt;br /&gt;So if you want to develop open source apps, as most great developers used to do, but with additional facilities, iPhone is a very great device to support your inner geek nature.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Here's a code snippet on objective-C (of course, for those newbies who don't know about it yet):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// MyClass interface file&lt;br /&gt;&lt;br /&gt;#import "BaseClass.h"&lt;br /&gt;#import "MyObject.h"&lt;br /&gt;&lt;br /&gt;@interface MyClass : BaseClass {&lt;br /&gt;    MyObject *object;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@property (nonatomic, retain) MyObject *object;&lt;br /&gt;&lt;br /&gt;// constructor&lt;br /&gt;- (id) init;&lt;br /&gt;&lt;br /&gt;// destructor&lt;br /&gt;- (void) dealloc;&lt;br /&gt;&lt;br /&gt;@end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// MyClass implementation file&lt;br /&gt;&lt;br /&gt;#import "MyClass.h"&lt;br /&gt;&lt;br /&gt;@implementation MyClass&lt;br /&gt;&lt;br /&gt;@synthesize object;&lt;br /&gt;&lt;br /&gt;- (id) init {&lt;br /&gt;    if ( ![super dealloc] )&lt;br /&gt;        return nil;&lt;br /&gt;&lt;br /&gt;    object = [[MyObject alloc] init];&lt;br /&gt;&lt;br /&gt;    return self;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;- (void) dealloc {&lt;br /&gt;    [object release];&lt;br /&gt;    [super dealloc];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So did we see object-oriented structure in the above code snippet ?&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-4207250341956584606?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/pe4Uyp7HXJk/new-device-new-programming-language-at.html</link><author>noreply@blogger.com (Jesse)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_OsuhH8p7v3g/SAoP8jgZA1I/AAAAAAAAABU/2CWTb7JSWCg/s72-c/iphonekeynote.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2008/04/new-device-new-programming-language-at.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7064343413833673987.post-5082523630776828910</guid><pubDate>Thu, 21 Feb 2008 16:43:00 +0000</pubDate><atom:updated>2009-07-02T04:11:23.582+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">Qt</category><title>C++ made easy with Qt</title><description>Most of developers I know in my environment recognize the difficulties &amp;amp; hurdles in learning C++ programming language, moreover pure C programming language. Despite those views &amp;amp; opinions, I choose to embrace C++ as a main programming language, because it's widely applicable to lots of programming problems, and for a simple reason, I learn and work with C++ before any other programming language.&lt;br /&gt;&lt;br /&gt;As I know, a programming language serves two related purposes:&lt;br /&gt;1. It provides a vehicle for the programmer to specify actions to be executed.&lt;br /&gt;2. It provides a set of concepts for the programmer to use when thinking about what can be done.&lt;br /&gt;&lt;br /&gt;So what can we infer from the above statements ?&lt;br /&gt;The first purpose is more like the C programming language has provided so far, and the second purpose are provided with many high-level languages (C++, C#, Java, etc.). But C++ is based on C, so indirectly it fits both purposes.&lt;br /&gt;&lt;br /&gt;Now, more specific reason for choosing C++ is because it's based on C, and we know C has these advantages:&lt;br /&gt;1. Versatile, terse, and relatively low-level.&lt;br /&gt;2. Adequate for most systems programming tasks.&lt;br /&gt;3. Runs everywhere and on everything.&lt;br /&gt;&lt;br /&gt;Now for advantage no. 3, people had referred Java as a language that's "compiled once, runs anywhere", as long as the platform has Java Virtual Machine (JVM). Yes it's true, but to me this JVM bothers my mind.  The Idea of running an application above an application just would add additional overhead to the system. Well I don't go deep in studying the implications of this Virtual Machine, and whether the overhead really matters much today in real world applications.&lt;br /&gt;&lt;br /&gt;But what if you're a C++ developer who wants to be a little bit relax, and happy in coding ? Besides, you're jealous of those Java programmers who have those features from their language. Well there's a solution, use Qt provided by Trolltech developers.&lt;br /&gt;&lt;br /&gt;Why Qt ? it's open source, it has Java programming style syntax, and it supports many platforms, and it's basically C++. Although Qt is a language that's "code once, compiled anywhere", the process in ensuring portability is much easier than if you're using pure C++.&lt;br /&gt;&lt;br /&gt;Why Qt hasn't gain much popularity in asian countries?&lt;br /&gt;I don't know that yet, maybe it just need more promotion, or is it because overall asian countries are single-platform minded, with lack of knowledge in Computer Science / IT?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7064343413833673987-5082523630776828910?l=jessearm.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JesseBlog/~3/QtiGXpRsbh8/c-made-easy-with-qt.html</link><author>noreply@blogger.com (Jesse)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://jessearm.blogspot.com/2008/02/c-made-easy-with-qt.html</feedburner:origLink></item></channel></rss>

