Archive for the ‘Apple’ Category

Either OS X for Windows or Visual Studio supporting Obj-c, Cocoa and other Apple’s frameworks.

I want to hear…”Hello, again from general Windows H/W.”

Don’t want slimmer notebooks, non customizable H/W. non-retina MBP and polycarbonate MB had easiest upgradability of RAM and storage devices.

They got rid of those options from MBs and even from Mac minis. Instead of making adding or replacing internal storage in Mac mini, they removed memory slots, and kept it difficult to upgrade.

Look at HP’s Mac mini-like mini PC!

Due to the cylindrical Mac Pro, extension card manufacturers need to design additionally for Mac Pro and hire device driver engineers. It reduced chance for video card companies to prepare one designed for general Windows PC for Mac with a driver for Mac.

It also raised costs

Seriously, other than S/W developers who know the benefit of Cocoa, who will choose Mac over Windows when they have the same Photoshop, Adobe Premiere etc?

I like Apples aesthetic side of MacBook Pros, but do Dell’s XPS notebook look bad? No!

There can be less expensive but good looking computers with good qualities! Why do ๐ŸŽ’s product decision makers overlook that fact?

It will be better if there is OS X for Windows box. (Anyway there is no difference in their H/W arch.)L

Or if Visual c++ also supports Obj-C, Cocoa and Av foundation etc!

How to use Apple’s Unicode Hex Input IME

It’s explained here, but ‘how to use’ is buried in the long text without indentation etc.

So, here.

  1. To type U+03B1, press the “Option” key.
  2. press 0, 3, B, 1 while still pressing the “Option” key.

 

Performance of Swift

People started to raise questions on Apple’s Swift language.

Performance of Swift vs. Objective-C

Some nice sorting tester written in Swift.

Apple’s Swift is not swift after all.

Among those, the last article caught my eyes. ( the 1st one is also good starting point. )
As far as I know, the inventor of the Swift actually is the core person in LLVM/Clang.
I’ve heard that he wrote Swift while making LLVM/Clang. So, if it is right, Swift language would be architected to get most performance out of clang/LLVM.

However, it was very questionable to Apple’s claim that Swift is x-times faster than Objective-C at WWDC.
Probably there can be such case. Sure! Java is also faster than C/C++ in certain case. ( Especially when they don’t count the time to load a program at first or whenever page-in happens. ) However, Swift is native and Obj-C is native. Obj-C has its root in C.
So, there is no reason that Objective-C is refined and modernized inside to achieve the performance of the Swift if they want.
Objective-C implementation has legacy model or old idea and tied with old GCC architecture. When Apple adopted clang/LLVM, the front-end of the compiler (GCC at that time) was redesigned until backend was ready. So, Now, on the both frontend and backend, Obj-C is written for clang/LLVM. I don’t mean that they refined all every part of Obj-C for clang/LLVM. It’s not realistic to wish that they did it perfectly for all aspect of the language. I expect Objective-C can be refined more. Yeah.. they got rid of the garbage collector, they changed here and there for properties. ( There are more versions in terms of properties than it is documented. Believe me. i tested 32bit, 64bit, Mac OS X, iOS, PowerPC, Intel, and ARM targets as well as modern and legacy Objetive-C. )

So, one of the thing I was really frustrated was that they touted Swift as better performing language than Objective-C. It gave an impression like “Objective-C is the language of yesterday. Now folks, jump on a new language, Swift!”
No.. it depends on how they think.
You know.. things human makes are always like that. Bill Gates said, PC era was ended when he put MS tablet machine on his hands. At that time, Steve Jobs said NO. And he proved that how cool PCs still can be by pushing out new MacBooks (Pros) and new Macs.
But suddenly, Apple announced iOS and kind of declared, PC era is ended. Do you really think so?
Trend-wise, yes. But it’s manipulated reality. It’s because Apple put more energy on iOS not on Mac.

It looks to me that people get tired of iPad, for example, nowadays. Why? iPad growth is slowed down, while PC form factor gained some popularity for recent months. Google’s Chromebooks are said to be sold very well. Actually it was the best selling ‘notebook’ computers in the US in the last December. Why? Yeah.. one of the reason is that it’s cheap. ( Well.. without many features.. the absolute price is cheap. But considering its missing capabilities compared to normal notebooks, it’s kind of expensive. )
Another reason is that people look to be tired with one-app-at-once style OS.
Also, if you decide to write a lot, then you need a keyboard for your iPad. Then.. isn’t it better to buy a notebook computer?

Look at Apple fanatics. They just buy everything. iPhone, iPad, MacBook/Pro, iMac or any other desktop Mac.
Why? I know that sometimes using iPad is more convenient than using MacBook Air or MacBook Pro 13″, especially in crammed place like on a bus or in an airplane. Then folding out LCD screen and sparing keyboard area is kind of pain.. and it’s hard to type or do anything. However, do we really need to spend our money for that very occasional moment?
I would rather have one smartphone and one notebook. That’s it. When you need mobility and are shopping or waiting for bus, etc, smartphones are good enough and more handy. iPad? Any tablet? They can easily slip out from your hand.
Holding a tablet while stepping on a bus.. it’s dangerous. You can drop your expensive tablet.
On a bus.. if there is really important information you need to know, smartphones are good enough.
If you are at some place where you can do more serious things, notebooks are better than tablets.
Between those transition times from mobile phones to notebooks? Just daydream! Just close your eyes and give your eyes chance to take rest! Look at what others are doing. Do eye-greeting to other people! That’s better.
Actually recent research revealed that daydreaming is good for recovering your memory, etc.

So, tablets killed/are killing PCs? Maybe.. or can eventually. But.. it all depends on what plan the manufacturers of PCs/tablets think about. Cool features of iTunes U program on your iPad? Wouldn’t it be better if Apple make one for Mac and PC?
Yeah.. They introduced discussion feature in the latest version. I believe it would be more convenient to use if the iTunes U is available on PC/Mac! Or any killer mobile apps? Evernote is more comfortable when used on PCs/Macs than Android/iOS mobile devices.
Should you divide when you produce and when you consume information? And should you spend your money for more “information consuming-oriented” device? They are not cheap.

That is the point I like about MS surface. People around me don’t look to like Surface, but I like it. Windows 8.1 looks better and more refined OS than 7 and 8.0. Especially on ‘Desktop’ mode of 8.0 and 8.1, 8.0 looked like half-baked environment. 8.1 looks completed one. Resolution-semi independence or high DPI mode is better with 8.1.
Just like the failure of old Mac didn’t mean that the technology was inferior ( the cooperative multitasking was inferior, but before that time, Mac was more advanced than PC. ), the failure of Windows 8.x nowadays doesn’t necessarily mean that its technology is bad.
Social atmosphere, trend, etc controls whether a platform gains popularity or not as well as technology itself.

(Mac fanatics are just like Windows fanatics.)

Anyway.. for that, I like MS’s approach more than Apple’s approach.
Ah.. let’s go back to the original topic.
So.. everything depends on what they want to sell and market. It’s not that PC era is ended. It means that it became hard for PC manufacturers persuade people to open their pocket, because nowadays even old PCs are faster for most of jobs. Should we buy a new PC? Game worked on that before. Still it does. But.. not for most of people.
Then they have to make people to open their purse. So, it’s the reason they declare PC era ended!.

Language is the same.. is Objective-C old language? Yes. But it doesn’t mean that it can’t be modernized or rewritten for clang/LLVM to juice out every small sacks of orange. I like the clean syntax of Objective-C as much as C++. C++ is known to be bloated. I agree with that view. But still.. C++ language designers can make it slim if they want.

I don’t understand if there is any strategic decision on why they pushed so hard the Swift at WWDC.
To make people apart from other platform and stick to iOS, just like MS tried and did with their Windows?

Usually such effort eventually turned out to fail.

 

Swift language : will it be successful?

Without making Switft available on other platforms also ( whether they support Cocoa or not. ), it may not be successful.

The reason is that.. if you choose other languages, you can use them directly on many platforms ( e.g. C/C++, Ruby, Perl, PHP, Python, etc ) or with a little effort ( Objective-C ). However Swift is solely for Mac now. Who is going to choose and learn a language which can be used on only one platform?

It may be Ok not to provide Cocoa/Cocoa Touch with Swift on other platforms. Like C/C++, different parties can provide their own ‘libraries’. Or it can be even better if Apple decides to provide Cocoa/Coco Touch on other platforms along with Swift, because Cocoa programmers can use their knowledge on those frameworks to make apps on other platforms.

Actually.. if I were the lead engineer of a ‘next generation of easy to use and learn language for LLVM’, I would have chosen Ruby. Will it be hard to make Ruby get benefit from LLVM? Ruby has nice OOP support and many 3rd party libraries ready to use, like Ruby on Rails. It’s modern and has lots of positive followers.

It looks to me that Perl is kind of gaining popularity also. It’s old language, but it has been the choice of CGI / Web /Script programmers for long time due to its trust-worthy solid base and tons of libraries. So, native code-generating Perl on LLVM sounds interesting also.

Probably Perl and Ruby have their own peculiarity which prevent them from being built on top of LLVM. But I doubt if there can be any such things.

Additionally I doubt if the performance of Swift code Federighi showed is the best and optimal result or general result. Why is Obj-C slower than Swift? Is there some really special aspect that the Swift is better suited for LLVM and multicore architecture? Is there any reason Obj-C can’t be as fast as Swift?

Lots of questions in my brain… Just hope that it won’t be like Dylan.

A parallel computer built with Apple II boards

AppleCrate II: A New Apple II-Based Parallel Computer


CrateII

It was 1991. Lee HyunChang, a professor I met in a SIG in KETEL for non IBM-PC compatible machine users. He explained about a parallel computer he designed and built using abandoned Apple II board from Se-Woon market in Seoul. At that time, there were lots of duplicated Apple II+ boards which were dumped, because 8-bit era was ended a while ago.
He sold the Apple II+ parallel computer to a department store, as far as I know, for their own use to control a big clock.

I didn’t even think whether I could something like that here in the US! ( even though it’s on the Internet. )

memory compaction in OS X Maverick

์–ด๋””์„ ๊ฐ€ ๋“ค์€ ๊ฒƒ ๊ฐ™์ง€ ์•Š๋‚˜? ๋ฉ”๋ชจ๋ฆฌ ์ปดํŒฉ์…˜.

OS ์ˆ˜์—…์„ ๋“ค์€ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์ด๊ฒŒ ๋ญ”์ง€ ์•Œ ๊ฒƒ์ด๋‹ค. ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ fragementation์œผ๋กœ, ์‹ค์ œ ๋นˆ ๊ณต๊ฐ„์˜ ์ด๋Ÿ‰์€, ๋กœ๋”ฉ๋  ํ”„๋กœ๊ทธ๋žจ๋ณด๋‹ค ๋” ํฐ๋ฐ, ์—ฐ๊ฒฐ๋œ ๊ณต๊ฐ„์˜ ๋ถ€์กฑ์œผ๋กœ ๋กœ๋”ฉํ•  ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์— ์“ฐ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ•œ์ชฝ์œผ๋กœ ๋ชฐ์•„ ๋‘ ์œผ๋กœ์จ, ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๊ณต๊ฐ„์„ ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ง€๊ธˆ Keynote๋ฅผ ๋‹ค์‹œ ๋ณด๊ณ  ์žˆ๋Š”๋ฐ, ย ์ด compressed memory๋Š” ์ „ํ˜€ ์ƒˆ๋กœ์šด๊ฒŒ ์•„๋‹ˆ๋‹ค. ์ด๋ฏธ System 7๋•Œ ์žˆ์—ˆ๊ณ , Windows์—์„œ๋„ heap compaction์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค ๋ฌผ๋ก  ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„๊ณผ ์ „๋žต๊ฐ™์€ ์„ธ์„ธํ•œ ๋ฉด์—์„  ๋‹ค๋ฅผ ์ˆ˜์žˆ์ง€๋งŒ, ์ „์ฒด์ ์ธ ๊ฒƒ์€ ๊ฐ™๋‹ค.

OS X 10.0์ด ๋‚˜์˜ฌ๋•Œ, โ€œprebindingโ€ ์ด๋ž€ ์ด๋ฆ„์˜ ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋”ฉ ๊ธฐ๋ฒ•์ด ๋‚˜์˜ค๋ฉด์„œ ์‚ฌ๋ผ์กŒ๊ณ , ๊ทธ ์ดํ›„์—” prebinding๋„ ์—†์–ด์ง€๊ณ  ์ž๋™์œผ๋กœ ๋œ๋‹ค๋ฉด์„œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ๋‹ค๊ณ  ๊ด‘๊ณ ํ–ˆ๋‹ค.

๊ทธ๋Ÿผ ์™œ ๋‹ค์‹œ ์ด ๋ฉ”๋ชจ๋ฆฌ compaction์ด ๋‚˜์™”์„๊ฐ€๋ฅผ ์ƒ๊ฐํ•˜๋ฉด, ์•„๋งˆ 4K ๋น„๋””์˜ค๋‚˜ ๊ธฐํƒ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์“ฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋“ค์ด ๋Š˜์–ด๋‚˜๋ฉด์„œ ์˜ˆ์ „๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์ผ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์ด๋‹ค.

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋Š”๋ฐ, ๊ทธ๋“ค์ด ์“ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ, ํ”„๋กœ๊ทธ๋žจ์˜ ์ˆ˜ํ–‰์— ์ €์žฅ์„ ๋‘์ง€ ์•Š๊ณ  ์••์ถ•ํ• ๊นŒ? (์‚ฌ์‹ค ์••์ถ•์ด๋ž€ ๋ง์€ ํ‹€๋ฆฌ๊ณ , compaction, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋ชฐ์•„ ๋†“๋Š” ๊ฒƒ์ด๋‹ค.ย memory fragmentation์„ ์—†์• ๋ ค๊ณ ) heap์ด๋ž€ ๊ฐœ๋…์„ ์“ธํ…๋ฐ, ์ด๊ฑด ๋ณดํ†ต stack, heapํ•  ๋•Œ ๊ทธ๋Ÿฐ ๋œป์ด ์•„๋‹ˆ๋ผ, pointer to pointer๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.
(์Œ.. ์š”์ƒŒ ์• ํ”Œ์ด CS/CSE์—์„œ ํ†ต์ƒ์ ์œผ๋กœ ์“ฐ๋Š” ์šฉ์–ด๋ฅผ ์“ฐ์ง€๋งŒ Mac OS 7 ๋ญ ์ด๋Ÿด๋•Œ๋Š” ์ž๊ธฐ๋„ค๊ฐ€ ์šฉ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ stack์ด๋‹ˆ heap์ด๋‹ˆ ํ•˜๋Š” ์ด ๋ฐ”๋‹ฅ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์ดํ•ด๋˜๋Š” ์šฉ์–ด๋„, ๋ฉ”๋ชจ๋ฆฌ ์ปดํŒฉ์…˜์„ ์„ค๋ช…ํ• ๋•Œ๋Š” pointer to pointer์— ์˜ํ•ด์„œ ์œ„์น˜ ์ด๋™์ด ๋  ์ˆ˜์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„, ์—„๋ฐ€ํ•˜๊ฒŒ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํฌ์ธํŒ…ํ•˜๋Š” ๋ฉ”๋กœ๋ฆฌ ๊ณต๊ฐ„์„ heap์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ๋ง์ด์ง€.)

๋งˆ๋ฒ ๋ฆญ์—์„  ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ–ˆ์„๊นŒ ๊ถ๊ธˆํ•˜๋‹ค.

์ฆ‰ ๊ทธ๋™์•ˆ memory compaction์„ ํ•˜์ง€ ์•Š๋˜๊ฒŒ ์ด์ƒํ•œ๊ฑฐ๋‹ค. ๋กœ๋”ฉ ์†๋„๋ฅผ ๋นจ๋ฆฌํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๊ทธ๋งŒํผ ์ปค์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋‹ค์ง€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ , ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ณด๋‹ค๋Š” ์†๋„๊ฐ€ ๋” ์ค‘์š”ํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์—”๋ฐ, ์ด์   ์ ์  big data๋ž€ ๋ง์ด ์œ ํ–‰ํ•  ์ •๋„์ด๊ณ , ๋น„๋””์˜ค ์žฌ์ƒ์€ ๋ฌผ๋ก  ํŽธ์ง‘, ์ธ์ฝ”๋”ฉ๋“ฑ์ด PC๋กœ ํ™œ๋ฐœ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉํ•œ๊ณ„๋ฅผ ๊ฑฐ์˜ ์ด์ „๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋„๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ ๋„ฃ์€๊ฒŒ ์•„๋‹๊นŒ ํ•œ๋‹ค.

๋ฌผ๋ก  ๊ทธ๋•Œ์™€ ๋น„๊ตํ•ด, ๋ฌด๋ฃŒ ์•ฝ 20๋…„ ์ด์ƒ์˜ ์‹œ๊ฐ„์ด ์ง€๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์ œ ๊ตฌํ˜„ ๊ธฐ๋ฒ•์ด๋ผ๋˜๊ฐ€, ์ข€๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด OS ๋ฅผ ์—ฐ๊ตฌํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ฐ„์— ์—ฐ๊ตฌ๋˜์—ˆ์„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•œ๋‹ค.

์š”๋ฒˆ WWDC์—์„œ์˜ ๋ฐœํ‘œ์—์„œ ์ธ์ƒ์ ์ธ ๋ถ€๋ถ„์€, ์ข…ํ•ฉ์„ ๋ฌผ ์„ธํŠธ๊ฐ™์€ OS X์˜ ๊ธฐ๋Šฅ ์†Œ๊ฐœ๊ฐ€ ์•„๋‹ˆ๋ผ, ์ง„์งœ ์šฐ๋ฆฌ CS๋ฅผ ์ „๊ณตํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋งํ•˜๋Š” OS, ๊ทธ๋ฆฌ๊ณ  System Software์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ๋‹ค๋Š” ๊ฒƒ์ด๊ณ , ์ด ๋ง์€ Apple์ด ์ด ๋ถ€๋ถ„์„ ๊ฐ„๊ณผํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๋œป์ด๋‹ค.
์‚ฌ์‹ค Leopard ์ดํ›„์—, OS ์ž์ฒด๋Š” ๊ทธ๋‹ค์ง€ ๋ณ€ํ•˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ์„œ๋น„์Šค๊ฐ€ ๋ณ€ํ•œ๊ฑฐ์ง€.

๋‚ด๊ฐ€ ๋ณด๊ธฐ์— iOS 7์ด๋‚˜ Mac OS X๋‚˜, Mac Pro ๋‹ค ์ธ์ƒ์ ์ด์—ˆ์ง€๋งŒ, ์ œ์ผ ๊ณ ๋ฌด์ ์ธ ๋ถ€๋ถ„์ด ๊ทธ ๋ถ€๋ถ„์ด์—ˆ๋‹ค.

๋ชจ์ฒ˜๋Ÿผ 1990๋…„๋Œ€ ์ดˆ๋ฐ˜๊ณผ ๋น„์Šทํ•œ ๋Š๋‚Œ์„ ๊ฐ€์กŒ๋‹ค.

Maybe Apple people consider Mac OS X/iOS hybrid apps?

The last time I looked up documentation on “How to build iPhone/iPad hybrid app” was 2 years ago roughly. (When did the 1st gen. of iPad come out?)

At that time, I think there was no “platform key” in this identifier format in info.plist.

key_root-<platform>~<device>

According to a section “updating your info.plist settings” in “Creating a Universal App”, it says :

For apps that run only on iOS, you can omit the platform string. (The iphoneos platform string is used to distinguish apps written for iOS from those written for Mac OS X.)

Hmm… what does that mean? Are they preparing a unified executable file format like they did for 32/64 and Intel/PowerPC for iOS and Mac OS X?
So, you can choose whether a project is built for Mac OS X or iOS, or the both?
Surely, iOS uses ARM instruction set in Mach-O format ( I believe ) while Mac OS X uses x86/x64 instruction set in Mach-O format. then…. yeah.. it can be possible to have one bundle.

Hmm.. if they announce a Mac-iPad hybrid device, it can be interesting. I like Lenovo’s effort on this with Windows 8.

 

WWDC 2013

wwdc13-about-mainWWDC 2013 ticker sale starts at April, 25th, 10 AM PDT

You would wonder if it’s worthy of the fee, $1,600. ( I hate it to say $1,599 )

So, here I would like to summarize why it can be good to attend and why it can’t be.

  • Why you should attend
    • You are surrounded by Apple haters and naysayers. So, you need motivation.
      • Until iPhone/iOS was announced, Mac developers were small group of cattle. You know Mac is very exciting platform due to its elegance of frameworks and many other stuffs, but you felt desperate because people around you say negative stuffs based on false information. At that time you need strong motivation. I can’t forget how amazing experience that was. ( I was a Windows/Unix developer also. So, mine will not as great as other Mac-only developers. Let’s say you developed only for Mac, how great the feeling could be! )
      • Even nowadays, although Apple is doing quite well, stock holders who worry that Apple’s margin on iOS devices are not as good as how it was before and journalists who don’t understand the whole picture, there are still many nay sayers. Check some tech. news web site recently. They even said Tim Cook should be kicked out. The low margin can be good for customers because we as customers can buy a good products in cheaper price. Also that makes Apple’s products more competitive. How single-cell creature-like thinking of that greedy stock holders!
      • So, you may still need motivation.
    • If you can speak English without worrying about your pronunciation and know how to start conversation with foreigners, it will give you a good feeling and may be able to find an opportunity in other country than you live. It doesn’t matter you emigrate to those foreign countries or not. At least you can get fresh and live information on markets you are interested in.
    • You can go through as many sessions as you can. If you do it at home with their sliders and video, you may not able to do that. I personally didn’t even watch those video except for a few selected ones.
    • If you take a MacBooks with you, you can attend their hand-on sessions. You can learn with Apple engineers’ help in a short distance. So, to make the learning process more effective, be prepared to be familiar with those code you want to write and technology behind it. Then you can ask more directly instead of focusing writing code in hand-on sessions. While asking questions and learning stuffs, you can also chat with Apple people and suggest your idea. You never know whom you are talking with. Actually I noticed that many people asked to those Apple engineers on what they do at Apple. Then you can directly approach those people who is responsible for technology you are interested and ask very specific questions. It will be very different from asking through their email list and discussion board with some stupid Apple-lover police living in the developer discussion board and those email list.
    • Nice meal and some kind of meet-up : Well, there are people who hate meal provided by Apple. True. Chefs prepared those in large quantity. So, it may be dried and taste like plastic. However, eating with birds with same feathers gives you good feeling.
    • Sample projects which shows how to use new frameworks or even older ones. Remember this. Sometimes this sample projects are not available for downloading for people who don’t attend WWDC. Sometimes they do. For WWDC 2012, they provided a link to download sample projects used in the WWDC 2012. But for WWDC 2011, they didn’t. I don’t know if they decided to post those for good since WWDC 2012. But let’s open a possibility that they may not post again for WWDC 2013.
  • Why it’s OK not to attend
    • The fee, $1600, plus fee for hotel, and probably for renting a car cost a lot. A LOT… It kills me.
    • The speakers may speak too fast for things you want to concentrate, and too slow for things you want to skip. They also flip slide pages as such.
    • Those sliders and video are available to any members of Apple Developer Membership. So, you can sit in front of your computer and watch and read it without paying the killing price. ( plus you can go to a bathroom by clicking “stop” button. )
    • You don’t need to persuade your manager who don’t understand why their S/W engineers need to be updated with new information.
    • Actually you may not learn anything just because you attend it. People are good at English can also say so. Anyway you have to figure out how to use interested framework methods and classes in the way you want. If you are non-English speaker, except for gathering with people who speak your mother tongue, WWDC can be boring. There is no our favorite pierrot any more. ( you know who he is. )

If the attendance fee is around $150~$300, I can make up my mind easily to attend. But $1600 + is kind of high for deciding.

This time I’d like to attend it. I feel like out of gas in developing S/W nowadays. Even on Windows, I had to confront who don’t understand S/W development. Those environment let me down. Developing S/W was joyful moment so far. However, here where I work, it’s discouraging.
Attending Apple-centric conference doesn’t cheer my Apple side only. It also cheers up my whole developers side in me. It doesn’t matter if it’s Windows, Web or Unix.
So, I value those “live” feeling that we are S/W developers a lot.

How about you? Are you going to attend WWDC 2013?

What happened to Apple?

After lots of struggling at home yesterday with the sudden expiration of iOS 6.1 beta 4, now iTunes displays “Check Update” and “Restore iPhone…” buttons.

iTunes now displays "Check for Update" and "Restore iPhone..." buttons

iTunes now displays “Check for Update” and “Restore iPhone…” buttons

The iTunes didn’t display it yesterday, i.e. Jan. 27th, 2012 Pacific time.
Why it didn’t display those buttons yesterday?

Let’s point out a few things.
When a beta image was expired in previous versions ( I’m not just talking about iOS 6.x or 5.x. I have full experience with iOS since it’s beginning. ), they put some “allowance” or “cushion” days sufficiently. So, even though its following beta image was not installed, the old version was a live. If what I remember is right, in 3.x versions of iOS, I installed beta 2 and didn’t did so with beta 3 and after official public version was announced, I updated it to the public version. There was no problem in using the iPhone/iPod touch with the beta 2.
However, yesterday, my iPhone suddenly displayed “Activation Needed” message. I was mostly out of my home, so I didn’t know if new version was released on Jan. 26th, which was Saturday.
Then when I came back home, my iTunes didn’t display “Check for Update” and “Restore iPhone…” buttons. So, although I downloaded the latest beta image, I couldn’t update my phone. My iPhone just became bricked.

Who are leading Apple’s development and SQA teams nowadays? After iPhone got popular, I started to feel their quality of work degraded gradually. I understood that they lacked in their work force. I’ve heard that only finger-countable number of people worked on Xcode, while at MS about 250 people work on Visual Studio. I know that many good people in Mac OS X team wanted to move over to iPhone team. So, I expected such lower quality job. However, I believed Apple people. They will cease urgent fire and will be back to normal mode. However, it turned out they didn’t.
I file bugs to Apple’s bug report pages. Some are easily noticeable problems.
Even though some are beta, their internal SQA team should test things thoroughly and publish to developer community. The outside developers are not their SQA team. Although we test their S/W programs, the main focus is different. I’m not saying that their S/W programs should be perfect. They are also human. They can do mistake. However, I feel that their quality degraded seriously compared how they were before. Well, if we call it nicely, it’s social SQA.

I, personally, do three steps of testing of my own code.
While implementing, I frequently debug what I implemented to make sure if it works as I designed. Then when I finish implementation, I debug it to see if it works as a whole first, and do another test to see if it breaks any related features. Then I hand-over to SQA team.
So, there has been no bugs once they left my hands. I’m not saying that I’m always perfect. However, I at least try to ensure what I do. If there is only things I don’t test thoroughly although I implemented is some features of which designed behavior is not yet set by people who requested it. So, it’s kind of rough implementation to the point which can be ground for whatever they ask for the feature.
I don’t want to say some “great-sound” terminology like “Test-Driven Development”
Even we don’t use such term, that is common sense.

(Strangely, since 2000, people in this field just invent some nice-terminology to mean the same old thing. It looks to me that they try to impress other business background people or some S/W programmers who don’t have background in CS in a way that they know a lot or they are professionals. However, you know what? Although that can help office politics or impress during hiring process, actually those people who make things work are those who have those knowledge melted into their habit, so can’t even spend their time to learn those terminologies.)

Let’s look at what Apple announces. Xcode, Mac OS X, iOS.. they contain lots of bugs which are very easily visible.
Where are those Apple’s unique integrity, and perfectionism?
It’s not Steve Jobs they lost. It’s those integrity and perfectionism.

To Apple

To Apple : Maybe Mac OS X is not important any more to you. But don’t forget that there are lots of people who depend on that for serious work and use their Macs as daily life.

I found lots of serious issues with iCloud sync in Mail. Peculiar behavior in synching mailboxes, messages not being deleted, deleted mail is displayed on other macs although its view setting is set to hide them, and so on.

Mac OS X is not a toy. Don’t regard users as a testing marmot. Nowadays, I’m pretty sure that you Apple people don’t test your S/W products as well as you guys did it before. Very apparent bugs in the OS and Xcode are not fixed and just distributed.

If you do this more, I’m pretty sure that you will lose the market again. Will the iOS OK? No way. as you may know, I reported lots of problems in iOS 6 and its apps already to you guys.

Although Android dev environment is still bad compared to Xcode, but Xcode has its own dirtiness. With Jelly Beans of Android, they caught up you guys a lot. Also, ARM chips contains Jazelle, a Java booster. So, overall sluggish performance will be enhanced drastically. So, beware of that!

GNUStep on Linux starts to look attractive to me more than ever. You should be glad that GNUStep doesn’t have big impact in developer community and user community. However, as Linux stood up suddenly, desktop Linux can do that someday, although they have failed for many years.

I don’t think your time is left much, Apple.