Posts

Showing posts from 2011

Amazing Charts with PL/SQL

Formspider, the Web 2.0 for PL/SQL developers, enables you to create gorgeous charts declaratively. Creating charts has never been easier for PL/SQL developers. Moreover, Formspider charts are implemented 100% in JavaScript. There is no Flash at all. So the charts you create with Formspider, work perfectly on mobile devices that do not support Flash, as well. Make sure you check out the demo and the tutorial.

Managing Screen Navigation in Formspider Applications

Click here to find out how we manage screen navigation in Formspider, the Web 2.0 framework for PL/SQL developers.

Data Types and Format Masks in Formspider

Formspider enables PL/SQL Developers build Web 2.0 applications just as easily as they were creating Forms applications. Click here to find out how we handle data types and format masks in Formspider.

Formspider surpasses 300 Installations

Our product Formspider, the Web 2.0 framework for Oracle PL/SQL developers has surpassed 300 installations worldwide. Read more about Formspider here.

Apple’s strategy leaked in a video…from 1988

I cannot help but share this video made by Apple…in 1988. The vision was always there. Now they are executing.

Siri; The Artificial Intelligence Revolution has begun

In her interview with Fred Wilson, Carlota Perez, who inspired him greatly in forming his investment strategy, talks about five technological revolutions: 1) The Industrial Revolution (Machines and Canals)
2) Railways and The Steam Engine
3) Heavy Engineering using Cheap Steal
4) The Automobile, The Assembly Line and Mass Production of Electrical Appliances
5) The Information Revolution On October 4 2011, with the introduction of Siri in iPhone 4S, a new technological revolution has begun. Continue reading at Yalim's Lodge

Steve Jobs’ best is yet to come

Did you really think that he left the stage without one more thing?

On Wearing a Suit

Here are five reasons why it might be a good idea wearing a suit to a business meeting with people you’ve never met before. Continue reading at Yalim's Lodge

Don't Require a Credit Card for Trials

I ran intoa question at StackExchange. It came from a founder of a B2B Internet startup, who is tired of following up with unqualified leads. He believes that the low barrier free trial his company is offering is the culprit for their low quality. As a solution, he is contemplating asking for credit card information before the beginning of the free trial and automatically charging his users when the trial ends. He is asking the SE community if this is a good idea.
Hmmm…Let me be really clear: Only porn sites should do this.
Continue reading at Yalim's Lodge

The Star Trek Secret to Happiness

For people who glance at blog posts for 10 seconds and move on to the next one: The Star Trek secret to happiness in life, is to never let McCoy to the bridge. What the heck does that mean? Interested? Good. Read on.

Steve Jobs lighted our way

My father lives as if it is 1975.
He refuses to interact with a computer.
To put things in perspective, every member of the family owns at least one computer and presented the advantages of owning one to him repeatedly. He never even touched a computer and seemed genuinely offended by the presence of one.
Continue reading the story here.

How we build Web 2.0 apps with PL/SQL

PL/SQL has never run on client machines and never will. This unchangeable, indisputable fact that seems like the most obvious disadvantage of PL/SQL is in an ironic way its biggest advantage. This very fact is the reason Oracle Forms was a platform independent application development framework. 
Continue reading here.

Free advice to the remaining PC Makers

I’ve prepared a list of the shortcomings of PC-Laptops (for lack of a better term) that made me jump ship and buy a MacBook Air. The items in the list will seem as clear as daylight to you. That’s because you are a consumer not an executive in the PC business. Continue reading at Yalim's Lodge

-1 for Google +1 Part 2

My blog post -1 for Google +1, in which I argued that no one is using +1 because there is no benefit a user gets from +1’ing anything,  generated a lot of comments here at this blog and at Hacker News. I would like to thank everyone who contributed. The comments really helped me to form a better opinion. In this post, I want to do a round up of the discussion we had. It seems to me that it all boils down to these three points:
Continue reading at Yalim's Lodge

-1 for Google +1

While I was browsing through news stories at MSNBC.com, I could not help but notice the vast difference between the number of people recommended a story on Facebook and +1’ed it on Google. Here are some examples:...
Continue reading at Yalim's Lodge

Seedcamp Event Guidelines for Newbies

Image
Last week I participated as a mentor at Seedcamp Ljubljana. For those who don’t know’ Seedcamp is an early stage micro seed investment fund and mentoring programme. They organize daily events across Europe where mentors and startups get together. This was my first time at a Seedcamp event or any event regarding startups. I am literally blown away. The buzz around the place is incredible. Everybody is candid, supportive and unpretentious. They are willing to help and probably more importantly receive help. The other incredible thing is that none of this buzz and excitement is about money. Yes, Seedcamp wants to invest in companies and eventually make money off of these investments but overall at a Seedcamp event, money takes a back seat to the culture of collaboration. The power of community, collaboration and willingness to receive help are the lessons I am taking home with me from Seedcamp Ljubljana. Over the next few days, I will write about the startups I’ve met and my two cents that …

Let’s meet at Oracle OpenWorld

This year, Formspider team applied to present at the Oracle OpenWorld via Oracle Mix. We submitted the presentation “Forms Modernization: The PL/SQL Way”.

We believe Oracle Forms modernization is an important topic for many Oracle customers. We would like to share our experience and knowledge in how organizations can protect their Forms and PL/SQL investment. If you are interested in seeing this presentation at Oracle OpenWorld please vote for it on theOracle Suggest-A-Session page.

Admittedly, the process to vote is a little tedious. If you don’t have an Oracle account, you have to sign up and then vote for at least three presentations in order for your vote to be valid. However, we promise the presentation will be totally worth your effort. :-)

Vote for Forms Modernization: The PL/SQL Way now.

JavaScript vs. JavaFX

Image
We built the XML Editor for the Formspider IDE in Java, because the original Formspider IDE was a Java Application. When we were preparing the Formspider Online IDE for the Web, we also had to move the XML Editor to the Web. In one of the brilliant moments of my career I told the team “Hey, we have a working editor in Java. Why don’t we convert it to JavaFX and be done with it?” This should be simple right? Right…After months of work, we finally got the editor working in JavaFX. The fact that we converted from Java to JavaFX, did not help as much as we hoped it would.

We went live with the Formspider Online IDE and started observing user behavior. Something was not right. People were signing up but not really doing anything. A quick investigation revealed that we were having problems with the XML Editor. It was failing for more than 50% of our users. Some people didn’t have Java on their machines, some had the open SDK that did not support JavaFX and some had problems we could not fig…

Hoşgeldin

Bir stüdyoda kaydettiğim ilk bestem.


Şarkıyı aşağıdaki linkten indirebilirsiniz. http://goo.gl/OSmXq Eğer şarkıyı beğendiyseniz, paylaşırsanız çok sevinirim. Yok eğer beğenmediyseniz, yine de paylaşın. Belki arkadaşlarınızın zevki sizinkinden farklıdır. Hoşgeldin gerçek mi cesaret mi
yalnızlık mı esaret mi
kemiğe dayandığında
mutsuzluk mu ihanet mi çocuk mu çocukluk mu
oyun mu huysuzluk mu
kemiğe dayandığında
ölüm mü yoksulluk mu gönlümü buldum
orda bir taht kurdum
onu oturttum kalbimde değilsin
kalbime en yakın yerdesin
hoşgeldin korkmak mı sığınak mı
yağmur mu sağanak mı
kemiğe dayandığında
kırmak mı kırılmak mı yollar mı duvarlar mı
sırlar mı anılar mı
kemiğe dayandığında
değişmek mi inkar mı hassas mıyım yoksa hasta mı
sarhoş muyum yoksa bir hoş mu
elime dayandığında
başıboş musun, başın boş mu? Söz-Müzik: Yalım K. Gerger
Düzenleme: Hasan Çakırsoy Bana kendimi hep evimde hissettiren Stüdyo Smart’a ve Serdar Kılıç’a sonsuz teşekkürlerle.

My First StackExchange Question

Image
I have always wondered why people bother giving advice to other companies.  Now I know… I have a product proposal for StackExchange. Let me describe the business problem first: My company has recently launched a product. Obviously, we needed a place to answer user questions. We hate old fashioned forums as much as anybody on this site. So, we wanted to integrate a Q&A site to our domain. We tried a few SO clones, picked one and after some effort it was all up and running. Our product is new and has only a handful users. However, it is a software product that is used by programmers. Every question about our product is a perfect fit for SO. However, it is not mainstream enough, so nobody would ever ask a question about it on SO. In short, my business problem is that my company ended up, installing and maintaining its own Q&A site. We don’t want to do that. This is not our line of business. We don’t care. We just want to take something and plug it in. We want somebody else do all the…

Caching Dynamically Generated Scripts

If static JavaScript or CSS files are served from the application server, we take it for granted that they are going to be cached by the browsers. However, dynamically generated content (Javascript and CSS in particular) could also be cached as if it is static and sent from the server only when it is changed. Nevertheless, application servers provide no support for this at all. So, the responsibility rests on the shoulders of the server-side code which generates dynamic content.

I looked all over the Internet but was unable to find a solution, so I wrote my own code. It's written for a Java Servlet but the same logic can be applied to other languages too. The servlet below sends a piece of JavaScript to the client that it builds dynamically and adds the necessary headers to the response so that the browser can cache it.

Here's the code that gets the job done:

public class TestServlet extends HttpServlet { private static final String CONTENT_TYPE = "application/x-javasc…

True Cross Browser Web Applications

Having a truly cross browser web application is like being truly happy. The moment you get there, someone is going to bring you up to date and ruin everything. And like happiness, you will never attain it if you chase it. And like happiness, it is a byproduct of devoting yourself to something that you are passionate about.

Developers tend to believe that the moment they start using a JavaScript library that works across browsers, they are immune to the problem. Nothing can be further from the truth. If you use such a library, this only means that the code inside the library is compatible with many different browsers. It does not automatically follow that any new line of code you will write for your application is going to work the same way across browsers. This is a hugely misunderstood concept.

With your first line of Javascript or HTML you are in cross browser hell. Let me repeat this. With your first line of Javascript or HTML you are in cross browser hell. Virtually in every proj…

Aloha ICSSP 2011

We are thrilled to announce that our team member M. Serdar Biçer will present his paper “Defect Prediction Using Social Network Analysis on Issue Repositories” at the International Conference on Software and Systems Process, ICSSP 2011. His work is one of the 18 papers accepted to the conference world wide. We congratulate him for his amazing success. Serdar, enjoy your trip to Hawaii!

Demos and Videos

We are happy to announce that we added a new demo page to our web site where we show off mini applications built with Formspider. Each application highlights something cool about the framework. There are six mini apps already and we will add more every day. You can run the apps and look at the PL/SQL code behind them too. Go to our demo page and see how we build amazing Web 2.0 apps with just PL/SQL.

We also revamped our Learning Center. It now includes short videos that will guide you through your first applications with Formspider. Watch and see how incredibly fun and easy it is to build web apps with just PL/SQL.

Our Story

When I founded Gerger, I had enough of management that intervenes instead of making it possible for me to work, company procedures that are written by drones with no heart or even a liver, policies that are specifically designed to kill the buzz around anything that may be remotely enjoyable to work on, office hours that start at dawn and end only when the boss leaves the building at midnight because this is the way he likes it, vacation days as if I am in prison and endless meetings that make me wish to have a seizure so that I can get out.
I decided to throw away everything I’ve been thought about how a company is supposed to be and start building my own the way I dreamed it.
At Gerger, there is no management. We are 17 colleagues who work together. We respect each others knowledge and intelligence and are willing to be subordinates when one of us has merits to lead. I cannot think of an instance where I said “Sorry, company policy.” We have no office hours. Anyone can enter the offic…

Aman Hiçbir Şeyden Geri Kalmayayım

Bir Tumblr'ım eksikti. Ona da başladık. E hadi bakalım hayırlısı. http://yalimgerger.tumblr.com

İlk Yarışmacılarımızı Ağırladık

Birkaç ay önce Projekent bünyesinde bir yazılım yarışmasına sponsor olmuştuk. Yarışmanın konusu JavaScript ile yazılacak bir XML Editörü idi. Katılacak arkadaşlardan da en önemli isteğimiz, mutlaka arada bir ofisimize uğramaları ve bizden geri besleme almalarıydı. Bunun nedenlerini de açıklamıştık.

Geçen günlerde çiçeği burnunda ilk yarışmacılarımız teşrif ettiler: Mert ile Mustafa. İkisi de cin gibi maaşallah. Henüz kodu yazmaya başlamamışlar ama kafalarında bayağı iyi bir plan yapmışlar. Önce Serdar’ın masasında başladık sohpete, baktık hararetleniyor, içeri geçtik. Mert aldı eline kalemi, geçti tahtanın başına...Allaaaaah...yazıyor çiziyor. Kırk yıllık yazılımcı gibi toplantıyı sürüklüyor. Annesi görse gurur duyardı. Harikaydı.

Mustafa da az değil. Arka planda kalıyor, düşünüyor, bütün seçenekleri değerlendiriyor, bize alternatifler sunuyor. Şu olur, bu olmaz diyor. Mert’in bir gözü hep onda. Oluru alınca Mustafa’dan devam ediyor. Şimdiden çok iyi bir takım olmuşlar.

Fikirler uçuşu…

Google Maps Api v3 Location Search with jQuery Autocomplete Plugin

Image
When I needed Google Maps style auto complete in my application, I looked into a lot of JavaScript libraries but I couldn’t find a useful solution. Since I’m new to JQuery, at first I couldn’t realize how it simple all this was.
With JQuery auto complete plug-in we can pull data from local or remote sources. In this example , I used google.maps.Geocoder as the remote data source.

For those who are not familiar with the term, geocoding is the process of converting addresses like ("1600 Amphitheatre Parkway, Mountain View, CA”) into geographic coordinates (latitude and longitude values).

There are two different geocode requests in this example:

1. I used first geocoding request to convert user address into latitude and longitude values,
2. The second request is the Reverse Geocoding, to convert search results into human readable format. Reverse Geocoding often returns more than one result. I think it is best to fetch all these results and serve all of them to the user instead of sh…

What Problem Domain Does Formspider Address?

Formspider addresses the same problem that Oracle Forms was built for, some twenty years ago: Enabling PL/SQL Developers build great enterprise applications with just PL/SQL.

At its height, Forms was great for that. Its only programming language was PL/SQL. The applications built with it ran on any platform. For example, I built applications that run on Windows. To this date, I still don’t know a single Windows API. I wrote in PL/SQL, using Forms PL/SQL API’s and Forms took care of the rest.

Since PL/SQL cannot really run anywhere but in the database, some brilliant engineers at Oracle had to convert all the PL/SQL code I wrote as a teenager,  to C, C++ or whatever so that my applications can run in Windows. I still don’t know what they have done. I never needed to know. I never cared. My focus was on implementing business requirements in PL/SQL and deliver results to my clients. Forms took care of the rest. That was the beauty of Oracle Forms.  Applications built in Oracle Forms are p…

Formspider Available for Local Installation

We just made Formspider available for downloading and installing locally. This was important as there was quite a bit of interest in the local installation. The team tested the hell out of the installer but please, please, pretty please let us know if you run into any issues. Giving feedback is incredibly easy. If the installer fails, it will ask your permission to send us the installation log. It collects no personal information and asks for an optional email address to get back to you when the problem is fixed.

The Installer currently supports Windows only. We are going to support other platforms but in the meantime, if you need Formspider installed to a different OS, contact us at contact@theformpider.com. We’d be happy to guide you through it.

Wrapping PL/SQL Source Code and a Strange Bug (PLS-00753)

Wrapping process makes PL/SQL source code unreadable. Developers can wrap package specifications, package bodies, functions, procedures, type specifications and type bodies. Unfortunately triggers cannot be wrapped. To wrap the trigger code you need to place your source code to a package or procedure and call it from the trigger.

There are two ways to wrap PL/SQL source code.

1. Wrapping PL/SQL source code with wrap utility


Wrap utility takes two parameters. First one (iname) is the PL/SQL source code file and the second one (oname) is the output file that will hold the wrapped code.

wrap iname=example_input_file.sql oname=example_output_file.plb
This is an easy way to wrap source code because you do not need to handle DDLs bigger than 32767 bytes. But this way, you need to save DDLs into different files and execute the wrap command frmo the command prompt for each file.

2. Wrapping PL/SQL source code with DBMSL_DDL package


The DBMS_DDL package contains an overloaded wrap API to wrap PL…

Using Where Clause with Hierarchical Queries

Using where clause in hierarchical queries may be confusing. Oracle first evaluates the joins in the query if there are any. Then, next step, selects rows in hierarchical order. Finally, applies remaining where clause conditions. In other words, rows are filtered by where clause after evaluating the hierarchy. Lets show this with an example on HR schema:

SQL> select level, e.employee_id, e.manager_id, e.department_id, e.first_name, e.last_name
 2  from employees e, departments d, jobs j
 3  where e.department_id = d.department_id
 4  and e.job_id = j.job_id
 5  and d.department_id = 100
 6  start with e.manager_id is null
 7  connect by prior e.employee_id = e.manager_id;

    LEVEL EMPLOYEE_ID MANAGER_ID DEPARTMENT_ID FIRST_NAME           LAST_NAME
---------- ----------- ---------- ------------- -------------------- -------------------------
        3         108        101           100 Nancy                Greenberg
        4         109        108           100 Daniel             …