This blog is outdated. Check out my website at http://cem.re or my work blog at http://cem.re/tumblr.

can't use it

a blog by Cemre Güngör

Easy and Painless way to cancel an Efax account

After reading numerous complaints, I decided to share the way I painlessly cancelled my efax account.

Welcome to chat.
The session has been accepted.
{- Bruce B.}    Hello, Cemre. Welcome to j2 Global online support. I am Bruce, your online Live Support Representative. How are you doing today?
{Cemre Gungor}    Hi. My efax number is XXXXXXXXX and PIN is XXXX. I want to cancel my account because the short-term project I am working on is complete and I don’t need to send faxes anymore. I am not interested in a trial period or any extensions.
{Cemre Gungor}    Could you help me?
{- Bruce B.}    I am sorry to hear that you have decided to cancel the account. Kindly give me a moment.
{Cemre Gungor}    Sure.
{- Bruce B.}    Okay, I understand and respect your decision for cancellation. I will cancel your account with us immediately.
{- Bruce B.}    We are sorry that you are leaving eFax. At eFax, we are continuously improving our products and services. Please do consider us if your faxing needs should change in the future.
{- Bruce B.}    Is there anything else you would like to have assistance with?
{Cemre Gungor}    No thanks.
{- Bruce B.}    You are most welcome.
{- Bruce B.}    It was my pleasure assisting you.
{- Bruce B.}    Thank you for contacting j2 Global online support. I hope you found our session helpful. Goodbye and take care.

Yes, so say that thing up front, nothing else is needed.

The Good and the Bad about Safari 4’s new UI

Safari 4’s beta sports an interface which is quite similar to Google’s Chrome: the tabs live in the title bar.

Safari 4's title bar

Here is what I think:

  • It is definitely more logical that the address bar and the toolbar live within a tab, as actions performed in that area affects the current tab, not the whole application.
  • However by doing this Apple is breaking the standard Mac OS UI of 20+ years, that there exists a title bar to move a window.
  • It is more difficult to drag a link and have it opened as a new tab. Before the whole empty tab area could be used for this. Currently this is accomplised by a 5-pixel-wide area at the left of the create tab button.
    Before this whole area could be used to create a tab

    Before this whole area could be used to create a tab

    It's now this big.

    It's now this big.

  • The handle in a tab (which lets you drag the tab) looks like it actually would resize the tab, as the same design is used to denote resizing elsewhere in Mac OS (like the bottom right corner of windows).

    This standard handle resizes a window

    Standard Mac OS handle resizes

    But Safari's handle moves.

    But Safari's handle moves a tab

As Safari 4 is in beta, Apple definitely will make some changes to the UI, and I’m eager to find out how they will tackle these problems.

Google’s Imageless Buttons Are A Semantic Mess.

A few weeks ago Google started using imageless buttons which are produced entirely with HTML/CSS. So they don’t use images and are apparently resizable.

The big problem about these buttons are, that in terms of semantical markup, they are a mess.

<div tabindex="0" act="7" class="goog-imageless-button
goog-inline-block goog-imageless-button goog-imageless-button-collapse-right
goog-imageless-button-primary" id="" role="button">
	<div class="goog-inline-block goog-imageless-button-outer-box">
		<div class="goog-inline-block goog-imageless-button-inner-box">
			<div class="goog-imageless-button-pos">
				<div class="goog-imageless-button-top-shadow"></div>

				<div class="goog-imageless-button-content">
					<b>Archive</b>
				</div>
			</div>
		</div>
	</div>
</div>

I personally see no point in using such a tag soup to implement buttons. In the longer run, loading a single image (assuming we’re using a CSS sprite) and using it over and over would consume less bandwidth than using 725 bytes for each button.

The article in StopDesign offers a better way of creating psuedo-rounded-corner buttons with not that much markup. By the clever use of a sprite, they obtain a horizontally and vertically resizable button.

<button class="btn" type="button">
	<span>
		<span>button</span>
	</span>
</button>

Also as they use an image, they have a much smoother gradient, as opposed to Google’s three-striped version.

There is also the jQuery UI approach to the problem, which I find elegant as well. They have a holistic solution to create toolbars and other UI elements.

<div class="fg-buttonset fg-buttonset-single ui-helper-clearfix">
        <button class="fg-button ui-state-default ui-state-active
ui-priority-primary ui-corner-left">Edit</button>
        <button class="fg-button ui-state-default ui-priority-primary
ui-corner-right">View</button>
</div>

jQuery partnership with Nokia = Fail

Last fall jQuery announced with great fanfare that Nokia has decided to endorse their framework and ship it with the widgets for its phones.

It’s funny how nobody has noticed that very basic things in jQuery (like $(”item”).html(”something”); ) CRASH the S60 web browser of Nokia (which is supposed to be Webkit, by the way).

Yes, the browser doesn’t even emit errors, it just crashes.

Hasn’t anybody in Nokia actually tried using jQuery with their browser before deciding to endorse them?

Compare and Contrast :)

From 37Signals:

windows-7-vs-ddr.jpg

(1) Windows 7 Explorer vs. (2) Dance Dance Revolution.

biteSMS versus FishText

UPDATE: Fishtext now has an iPhone app too in addition to the Java app. Get it from the App Store.

I’ve been using Fishtext for a couple of months to send SMS from my phone. Normally SMS costs TRY 0,22 (with Turkish taxes %18 + %25, which make %47,5, it’s TRY 0.33), which is around 16 Eurocents. Sending a message abroad is 50% more expensive, making it 24 Eurocents. Fishtext’s tarriff is 2 Eurocents per message for all countries (and even 1.5 Eurocents for some carriers).

Fishtext makes you install a Java app on your phone. After registering your number, outgoing SMS you send with Fishtext appear like coming from your own number. The only hassle is having to fire up the Java App and letting it connect to the internet, but one gets used to it after a while.

So I’ve been paying 2 cents per message instead of 16. That’s a deal! :)

American carriers apparently didn’t like somebody offering their subscribers cheap messages, so they prevent your original number from showing up when you text people from the US, messages seem to come from random numbers. I remember a similar case with Rebtel, when US carriers prevented them from obtaining a short number to offer better service. How pathetic of them.

I noticed a similar service the other day for the iPhone called biteSMS. It has a slick app, but it costs 6 Eurocents a message.

How to fix the caching problems with VirtualBox folder sharing + Apache

We are using a common VirtualBox image for the development of our graduation project. The files reside in our own computer, so the virtual instance only runs the Apache, which pulls the files from our computer and executes them. So for Apache, the files it serves appear to be mounted with NFS (that’s the way virtual systems represent folder sharing)

While a brilliant idea, this led to very strange caching problems. For one, the CSS files I was writing weren’t getting updated. If I put a lot of stuff in a CSS file which is already cached, it would spit out other PHP code in our project!

A few days of confusion and a fellow blogger has the result. So go to the configuration file of your Apache instance in the virtual image and add these two bold lines.

<Directory “/var/www/public_html/”>
Options Indexes FollowSymLinks ExecCGI MultiViews
AllowOverride All
Order allow,deny
allow from all
EnableMMAP Off
EnableSendfile Off
</Directory>

This is a supposed to be a performance-improving default setting, but not very useful for development environments, and especially when the NFS-mounted files are actually on the same computer.

Design for the Real World

I’m reading a fantastic book and I thought I should share its equally fantastic preface with you:

There are professions more harmful than Industrial Design, but only a very few of them. And possibly only one profession is phonier. Advertising Design, in persuading people to buy things they don’t need, with money they don’t have, in order to impress others who don’t care, is probably the phoniest field in existence today. Industrial Design, by concocting the tawdry idiocies hawked by advertisers, comes a close second. [...] Before, if a person liked killing people, he had to become a general, purchase a coal mine or else study nuclear physics. Today, Industrial Design has put murder on a mass-production basis. By designing criminally unsafe automobiles that kill or maim nearly one people around the world each year, by creating whole new species of permanent garbage to clutter up the landscape, and by choosing materials and processes that pollute the air we breathe, designers have become a dangerous breed. And the skills needed in these activities are carefully taught to the young people.

The book is “Design for the Real World” by Victor Papanek. You can check out more pages using Amazon » but notice that this preface is not there.

Poll UI Design

One thing to remember:

If you’re asking users to grade things on a scale, provide the “no opinion” as a default. Or have your code assume “no opinion” if the user doesn’t select anything. Please don’t force the user to click “no opinion”s one by one.

Congratulations to Facebook about Turkish localisation

While I wasn’t very fond of the user-invented terms for the things in the site, I think Facebook has to be congratulated for being the first ever (!) software product that can conjugate names according to Turkish grammar rules.

For years, we were forced to use software with quite unnatural translations, such as “Person Mike wrote a message to Person James”. Or then the suffixes added wouldn’t match with the words at all.

Turkish conjugation is not that difficult, but I am suprised it took so long for anybody to implement this. I think it’s pretty awesome.

Meanwhile, the Finnish Facebook is lacking such conjugation support. The declination rules of Finnish are more complicated though, in Turkish it’s only the suffix which takes different forms, in Finnish suffixes modify the stem of the word too. I’m not sure if it’s more difficult from a computational linguistics perspective. And lots of Turkish people are working at Facebook is also probably a reason for this technological leap.

I think this “natural” way of putting things down make Facebook much “nicer” to use.

As an added bonus: because they are pronounced more or less the same, Turkish Facebook puts correct suffixes at the end of Finnish names too :)