julik live

Building Nuke plugins on the Mac, Christmas 2014 edition

Building Nuke plugins on the Mac, Christmas 2014 edition

As 2014 is folding to a fanfare close, we here at julik live would like to take you, dear reader, to 2009. To recap what happened in 2009:

  • The Icelandic government and banking system collapse
  • Albania and Croatia are admitted to the North Atlantic Treaty Organization (NATO).
  • The Treaty of Lisbon comes into force.
  • Large Hadron Collider gets reactivated.
  • Apple Computer Inc. releases OSX 10.6 Snow Leopard

That last fact is of uttermost importance for us. We are going to time-travel to 2009 to see how life is like in a world where everybody uses systems so old they cannot be obtained legally. To the world of high-end VFX software.

See, I made a Nuke plugin back in the day. Because I really wanted to and I needed it. As faith would have it, I also really wanted to share it because it could be useful for many other VFX artists using SynthEyes -- which I still consider the greatest, fastest and the most affordable 3D tracking package ever.

However that plugin development thing puts me way out of my comfort zone. See, this is C++ we are talking about - but if only. We are also smack in the middle of the DLL hell because, as you might imagine, a plugin for someone else's software is a DLL that you have to build (or a .dylib, or a .so - a shared library for short). Now, 5 years have passed and I somehow managed to maintain a build pipeline for the plugins intact - for quite a long while for example I specifically delayed upgrading from 10.5 just to avoid everything that is related to this dependency hell. Dependency hell in the world of building shared libraries for closed-source hosts is defined as:

  • you have to build against system library versions that have the same ABI and same versions
  • you have to build with exactly the same compiler
  • you have to build against system headers that match the libraries
  • you have to build with non-system libraries that match the system libraries. Fancy some boost perhaps? Or some fancy OpenEXR library? Or some image compression libraries? If you do, we need to talk. Trust me, afte going through this ordeal a few times you will reconsider their use and appreciate the zen of doing without.
  • you (mostly) have to build with non-system libraries that match the versions used by your host application

That leads to an interesting development cycle. At the beginning of that process, if you are lucky and starting early, you will have a machine that carries somewhat-matching dependency versions for all of the above (or the dependency versions are obtainable). At the beginning you will invariably struggle with obtaining and installing all that stuff since it by definition is going to be obsolete already, but that is mostly manageable. I remember that I didn't have to install anything special back when I was building on 10.5 at the beginning of SyLens' lifetime.

More on this...

Suspects: Mac

On the benefit of laptop stands

When you look at pictures from trendy startup offices you often see laptop riser stands.

One might think that you would do that to make your desk look neater. Or that it is for better posture. Or just to have yet another neat Apple-y looking apparatus in your vicinity for more hipster look. However, there is a benefit to laptop riser stands that some do not quite see upfront.

However, there's more to it than meets the eye.

More on this...

Suspects: Mac

OWC Data Doubler caveat with 10.9 Mavericks

Shoved a spanky Samsung SSD into my MBP using a Data Doubler from OWC - easy to confuse with the DiskDoubler of yore, by the way.

So, pried open the laptop, put in the SSD into the doubler plate, screwed everything back in. Turns out due to somewhat inferior SATA port on my particular MacBook Pro model the disk would never work properly in the first place. The Mavericks installer just stopped with the "Installation failed" message, leaving the partition for DiskUtility to repair.

The fix is surprisingly head-on. Apparently the SATA port used by the optical drive is not so good after all, you got to have your 6G SSD on your primary SATA, where the old hard drive is. Just swap the old HD with the new SSD, so that you have a SATA 3G device in your doubler plate, on the not-so-good SATA port destined for the optical drive.

So off goes the lid again, the SSD and the old hard drive swap places and the Mavericks install then proceeded as it should, rewarding me with a pristine desktop.

SSD bliss.

Suspects: Mac

Running .command files on OSX in other interpreters than sh

We all know that on OSX you can create so-called .command files. In a nutshell, they are renamed shell scripts. When you make them executable and double-click them, they will run by themselves within Terminal.app.

A little less known fact about them is that you can actually script them in any language of your choosing. For the reasons of distribution it's better to stick to the versions of things available on OS X by default, obviously. You do this by modifying the shebang, just like you would for any other shell script.

For example, a .command file that runs via Ruby would look like this:

#!/usr/bin/ruby
puts "Hello from #{RUBY_VERSION}"

Note that I am not using /urs/bin/env here to get at the right version of Ruby since that turned out to play up on 10.6 somehow. I stick to the system ruby instead.

Suspects: Mac

Gracefully handling NFS mounts on OSX laptops

For the last few years, all the work I do has been equally split between Flame systems running on Linux and a couple of Macbook Pro's running OSX. At Hectic we make use of NFS to make the same servers available to all of our client workstations which are an equal mix between Linux and Windows (Macs do not ouse our NFS facilities much). One of the problems I have encountered has been configuring the NFS mounts on my laptops for graceful timeout.

Now, in the ideal world NFS is designed to handle unmounts gracefully of course. That is, the client is supposed to suspend or fail on IO operations when the requisite mount is not found. Apple, however, in it's infinite wisdom, designed a slightly different system for it's OSX Server infrastructure. The mounts that you were used to designate in the Directory Services application or, more recently, in Disk Utility (explained in tutorials like this one are managed by automountd, Apple's daemon controlling the directory mounts. This is the daemon that originally was designed to provide automounted user home directories and other handy things in the /Network folder on the root drive. In Mountain Lion this feature has been removed, but people try to use automountd nevertheless, explained in a post here.

However, automountd has been designed for limited applications - like computer labs at colleges and universities. It is not capable of detecting offline servers or stale mounts, and even with all the settings tweaked it will never timeout on an NFS mount. In practice, this means that if I have some NFS mounts defined on my laptop and I take the laptop somewhere where the NFS servers cannot be reached, the following will happen:

  • All navigation services dialogs in all applications will beachball when trying to access the stale mounts
  • All applications having documents open off of these servers will beachball
  • Due to Lion and Mountain Lion's automatic document reopening of last-used documents per application apps that support this feature will beachball again on startup.

This is not pretty. What you actually want is a nice dialog like this:

Conn int

when the mounts are gone and then to be able to proceed with your business.

And this turned out to be remarkably simple to achieve. The easy solution is - do not use automountd at all, but mount manually. I do it with a Ruby script that I need to run in the morning once my laptop is up and running on the company network. When I come home, the OS falls back to the natural behavior of simply unmounting the stale shares instead of having automountd hammer on them indefinitely.

Suspects: Mac

Matchmover tip: making use of EXIF comments to know your field of view

So you got this batch of reference photos and just into doing some image - based modeling. Awesome! Except that you vaguely remember that there was a zoom lens used on the photo camera. So you'd say "not possible" right?

Nothing further from the truth! Canons actually have these smart lenses that report their current focal length to the camera, and this is something you can use to your advantage. Just like these super-expensive films do with their Cooke/i lenses but you never will since your production couldn't afford them ;-) So, the magic.

Step one, load the pics into some software with decent EXIF support (like Lightroom or iView). Note the lens values and the camera model:

sy_exif.png

Step two, snoop the internets for sensor sizes:

sy_table.png

Step three, enter film back data into your matchmoving software so that it knows how to properly compute FOV from the focal length

sy_fb.png

Step four punch in the lens millimeters.

sy_focal.png

Step five - profit!

Suspects: Mac

Just 7 years ago

A tad more than 7 years ago.

just-then.png

I'm glad we got out of this alive.

Suspects: Веб-стройка Mac

The culture ain't it

So let's imagine we want to run a CI server. And we want it to work with both githubs and gits and subversions and pwn everything. We skip CruiseControl.rb (after all it's not awares of githubs right?) and decide to try out the new kid on the block. First of all, we immediately find out that:

gem sources -a http://gems.github.com
sudo gem install foca-integrity

Which in realistic parlance means there is no official gem, no official Rubyforge project - who fuckin needs Rubyforge now? Ok, on to business.

After 10 minutes of chugging, my Quad G5 finally manages to install all the 33 (it's not a joke! 33) gems (of course they contain all the latest versions of datamapper and do-boo and do-foo and supermodular and whatnot - because you know, who the fuck needs ActiveRecord anymore? we all do new modern stuff right? get out of the ghetto already!)

integrity install ~/integrity

The script complains that we do not have the right version of rspec. I mean, it's ok that it did not pull it with the other 33 gems, might have been 34 - who cares? Of course there is no rspec-1.1.11 anywhere, because we're on githubs and there are no official releases anymore. We're all hippies and stuff.

integrity install ~/integrity

The script complains that it wants cucumber. Now this is downright insluting. Look, I do not need to have all the latest and greatest BDD megatools known to the universe to just run the application. I will never, ever need Cucumber I swear! Ok, let's proceed.

 Installing RDoc documentation for cucumber-0.1.16
 /usr/local/lib/ruby/1.8/rdoc/parsers/parse_rb.rb:122:
 [BUG] Segmentation fault

Now, this has nothing to do with integrity itself, but cmon - before making gems check that your docs build. I know rdoc is not stellar, and this is probably a bug in Ruby itself, but still - latest and greatest has it's specificities.

Ok, swell. After bypassing rdoc with --no-rdoc option cucumber finally installs and we can install the app itself. Gee. But clearly, depending on the universe of bleeding-edge testing gems that are only on github is a massive FAIL. Excuse me but this is just so.

Now... the app says that to enable email notifications I need another gem from githubs. Y'know folks, probably 99 percent of people installing a CI server would want emails on broken builds, why I need a gem 35? Well, nevermind... another gem install.

Oh wait we also need thin (this is recommended). Another gem. Let's get rolling. Just add the repo over here...

repo-setup.png

Wait a minute, this is for githubs and stuff - why should I copy the repo URL into the interface if it knows more about githubs than I would ever to know in my lifetime?

Anyways, let's build.

oops-dm.png

Oops.

Folks, these are really cool. Swell. Trust me. Besides, watching your fork queue on the same githubs might work well too.

Note: - I am not bashing on Datamapper specifically, I'm sure it's got it's pros and cons and I sure know that it has a migration engine. However, when you transform your source control into your download site you better know what you are doing and which state your build has.

To put the final note to the piece, we proxy our external server to my box where Integrity is running (just to try out the setup). 503 Service Unavailable

 review:~ julik$ curl http://xx.xx.xx.xx:8910/
 curl: (7) couldn't connect to host

So the default install is not routable from the outside (either due to port number being too high or to the defaults of thin). If there were an art to choosing bad defaults - this is a masterpiece.

Here ends my adventure with Integrity. I'm off to figure out how to uninstall all this crap that found it's way onto my system for this entertaining user experience moment.

P.S. Just for comparison, on the same machine:

  review:tmp julik$ git clone git://github.com/thoughtworks/cruisecontrol.rb.git
  Initialized empty Git repository in /private/tmp/cruisecontrol.rb/.git/
  remote: Counting objects: 8917, done.
  remote: Compressing objects: 100% (3598/3598), done.
  remote: Total 8917 (delta 5090), reused 8688 (delta 4940)
  Receiving objects: 100% (8917/8917), 9.97 MiB | 26 KiB/s, done.
  Resolving deltas: 100% (5090/5090), done.
  review:tmp julik$ cd cruisecontrol.rb/
  review:cruisecontrol.rb julik$ rake
  318 tests, 765 assertions, 0 failures, 0 errors
  39 tests, 174 assertions, 0 failures, 0 errors
  22 tests, 43 assertions, 0 failures, 0 errors

Here's the same done right.

Suspects: Mac

Nemacs, nevim

Had a discussion recently with Yaroslav on switching to Emacs or vi. And I tried again and I failed. The reason is so stupidly obvious it's hard to explain. You see, I got this:

kbs.png

This is not a cultural thing. I need to switch my keyboard layout, hundreds of times a day. And the Cmd+Space combo is the most worn one on my keyboard, by far.

However, the problem is much deeper. The problem is what I call the text-meta-ui, and it boils down to escaping. Let me explain. A standard OS X app is driven by keyboard shortcuts, usually like so:

textmateShortcuts.png

The beauty of Cocoa is that all the keyboard shortcuts implemented that way will be interpreted based in the keycode only. That means that independently of current keyboard layout, the commands get interpreted unambigously. Find is Cmd+F and so on. So if I am in a Russian-language file, and I need to find something, I never change my layout to anything - the shortcut for the find dialog works out of the box, the tab key is idempotent in all layouts, same for Enter/Return. No switching.

Now, some apps are buggy in that regard. Carbon apps do not honor the keycode convention until their authors have paid attention - all Adobe apps for OS X had this huge omission which make working with them akin to swimming in glue - it's been enough to switch your layout and bam! all of your shortcuts are dead. TextMate bundles have the same gaping problem - when you are on the different layout, all of your shortcuts fall through to the viewport. Given that Textmate is now a dormant project, I don't expect the problem to be fixed, but who knows.

Now let's look at Aquamacs from this perspective (I am using it as an example). What is the shortcut for "Help"? C-h (Ctrl-and-then-h). Let's call it up.

c-h.png

So far so good. Now let's switch the layout and try that again.

c-undef.png

Now this is what I call the meta WTF of UNIX editors. Aquamacs recognizes my input based on characters, not keycodes - therefore, when I am in the russian layout any kind of meta-command will involve a kbd switch. And not only that - the real annoyance is when the argument for the meta-command itself is going to be the in Russian as well. Not one, but two keyboard switches (one to go into meta mode, one to return to literal input in meta mode). And unfortunately, in that sequence:

Ctrl-something-(ow-shit-cussword-I-need-to-switch-layout)-Esc-
(cmd+space)-Ctrl-some-
another-(cussword-I-need-an-argument-in-russian)-(cmd+space)-
аргумент-enter

This, for me, is a killer. Four times I've tried to start with the ubergeek editors, and every time it stopped at this very moment.

When you have to switch the keyboard layout. And yes, I know that you can toggle the layout temporarily on OS X - this does not scale.

So a question (for folks still reading this) - how do you handle Emacs/Vi(m) with multiple keyboard layouts (short of remapping the keyboard switch to capslock which does not really solve the problem)? Googling for discussions on that subject did not yield anything meaningful.

Suspects: Mac

Interfere that

We urgently need some extra channels except the 3 that do not interfere with each other, so it seems.

interference.png

Update of 2013: Now this is getting quite silly indeed.

BLnshKGCYAEzP0c png large

Suspects: Mac

For the lonely stranger

For the lonely stranger that has come here by the virtue of Google. If any Quicktime movie on any webpage in any browser freezes your computer for 10 minutes instead of playing, disable your second monitor and be glad you got out alive. Greetings to the Quicktime plugin.

Might spare a night of swearing.

Suspects: Mac

Leopard installer == epic FAIL

This didn't happen to me in a long time. As it turns out, the Leopard installer (obviously through a malicious complot with the UNIX "mv" command) does the following when you use "Archive and install":

mkdir /PreviousSystems/Timestamp
mv /Users /PreviousSystems/Timestamp/

Should I need to tell you what happens when you do "Archive and install" twice (say because the first install failed)? Well, the following:

mkdir /PreviousSystems/Timestamp
mv /Users /PreviousSystems/Timestamp/
# grind through an hour long install and fail
# reboot - let's try again
# grind through an hour long install and succeed - joy!
mv /Users /PreviousSystems/Timestamp/
# reboot, see the nice movie, fill in the forms
# look into the Previous System
# swear and bleed - all but one user's directory are in place,
# but the one we need is empty

Еб твою мать. One of the things that never happens is never never never never touching a timestamp if it's there already, by a twist of faith. Who knows, maybe the machine was set to DST? Whatever! It's there - don't touch it!

Needless to say that this absolutely instantly unlinks the old home directory that was there. A simple realization of the fact came with such a mix of Dutch, Russian, English and French exlpetives you wish you'd been there. And no, it was not my home directory, but at the end of the day I am the one accountable for clicking "Install" twice. After all, it said "Archive and install" and through my 30 or so installs of OS X worked flawlessly. And no, they did not put Big Red Letters in there.

Although the KB article states that I should have gotten two directories in the Previous Systems I only got one.

Moral of the story:

  • do backups, stupid me - but I did not have any storage to put the stuff onto
  • do NOT try a second install of Leopard before your calendar flips one day ahead
  • before pushing any buttons, read the forum articles (I've found one which described the issue - after the fact of course, but lost track of it by now)

Also if I ever meet the guy who wrote the shell script in question, I'll have some warm words for him. If someone of the readers has a Radar account - please file a bug on this.

Archive and Install should not delete the user's home directory gawddamit. I so feel like Pierre Igot.

Suspects: Mac

Dimgee me

Sheer awesomeness

binj = Binject::DMG.new("blank.hfz", "Accordion")
binj.inject_dir("Accordion.app", "/tmp/accordion.app")
binj.chmod_file(0755, "Accordion.app/Contents/MacOS/accordion-launch")
binj.save("accordion.dmg")

Suspects: Mac

Tooled

Amazing but true - "Sita sings the blues", the winner of the feature prize at the Annecy Festival is a film made in Flash.

The more amazing fact is that the artist had one, and only one way to automatically export a rendered Flash animation into raster - embed it in Shockwave Director and then read the rasterized images per pixel. With all the oomph and aamph today it's still the only way to framelock Flash, iPhone or not.

Mad props to Nina Paley! A grand foei to Macrodobe for the workflow (and Flash frame precision in general), which is a FAIL.

Suspects: Веб-стройка Mac

Продвижение

Если кто-то еще не понял что Microsoft называет развитием функциональности. Была программа iView Media Pro, крайне уважаемая многими фотографами. Microsoft купил iView с потрохами и почему-то на ее базе сделал Expression Media. Равно как и с Expression Blend макюзеры таки получают один апдейт для их платформы (пока купленных разработчиков не затолкали в борг-куб .NET). Уникальную рисовалку со скелетными кистями (которой был Blend) они таки задушили.

Так вот, возвращаясь к теме. Сравним основное меню двух версий - последней версии iView и Expression Media.

More on this...

Suspects: Mac Дизайн

Оверлейте это

Запускаем Illustrator CS3. Нажимаем Shift+F10. Наслаждаемся декадансом. Кстати, каждое окошко в Quartz - это отдельный double-buffered plane, с соответствующим оверхедом.

Suspects: Mac

Феерично

Для справки - если Flash CS3 таки получил здоровую иньекцию прямых рук, то на Fireworks это не сказалось. Не дошел выпрямитель.

Рисуем прямоугольник. После шестнадцатого тыка мышкой Property Inspector таки @#$ показывает @#$ properties прямоугольника.

Это началось в Fireworks MX. Fireworks CS3 это спустя ТРИ версии после этого. В Fireworks 4 кстати все работало офигительно. Это было 7 лет назад.

Suspects: Веб-стройка Mac

Уберите свой ghostscript

При минимальной автоматизации иллюстрированных документов в интернет полезно абсолютно

sips -s format png --resampleWidth 450 inputfile.ai --out output.png

Жрет все от фотошопных файлов до SGI. Растеризация PDF и AI происходит с антиалиасингом и с использованиеv шрифтового движка Quartz, и соответственно русских буковок в PDF-юникоде и так далее.

Прекрасно подходит в том числе для быстрой отсылки по мейлу вариантов макета.

Suspects: Mac

А MarsEdit таки неплох...

Напомнил мне ecto в те годы когда он еще назывался KungLog и не оброс бессмысленными плюшками.

Дабы скрасить читателям первые минуты тест-драйва, сообщим генеральный секрет.

Entities выключить, юникод включить

Счастливые пользователи 1251 отправляются по известному адресу, конечно же (веб-сервисы – это вам не тут). C LJ работает слегка криво но поправимо – RPC-URL это http://livejournal.com/interface/blogger, а Blog ID - имя вашего дневника или комьюнити, но строго с подчеркиванием вместо дефиса!

P.S. Смешно что MarsEdit по сути – редактор блогов который в свое время был включен в NetNewsWire.. Кстати именно тогда я его использовать не смог, поскольку спасительной галочки про entities там не было.

Suspects: Mac

Однопиксельное дао фотошопа

Уже который год я задавал пикселистам вопрос, почему Фотошоп не в состоянии работать с Вакомом в однопиксельном режиме? Поясню. Создайте документ 32 на 32 пикселя, увеличьте его до 1600 процентов и переключитесь на "карандашик". Попробуйте "ткнуть" пиксели сначала мышью, а потом пером. Странность заметили?

Вкратце говоря, по непонятной мне причине Фотошоп воспринимает "нажатие" на пиксель с помощью пера только когда это нажатие приходится на центр пикселя, плюс-минус допуск в пару пикселей экранных. По не менее странной причине, при применении мыши нажатие "в пиксель" аккуратно снапится в точку. Что характерно, Опытные Пикселисты отвечали мне просто: рисуй мышкой. Что в очередной раз доказывает, что в стране Фотошопа гниение достигло зенита.

Тем не менее, сегодня я наконец-то совершенно случайно напал на ту самую галочку.

Ясное дело что хелп более чем хелпфул в этом вопросе, и утверждает что

Smoothing produces smoother curves in brush strokes. This option is most effective when you are painting quickly with a stylus; however, it may produce a slight lag time in stroke rendering.

Описание по невнятности может конкурировать с учебником флейма (это такие два тома про сепульки и сепулькарии), поэтому проиллюстрируем на примере:

Smoothing on.

Smoothing On

Smoothing off.

Smoothing Off

Как видите, без smoothing положение пера фиксируется с большими интервалами, а между зафиксированными положениями просто проводится прямая линия. Толщина линейно интерполируется между точками. Так вот, почему-то (по причине, известной пожалуй лишь Ражалпраграму Наджави из Бангалора) оный smoothing работает даже для однопиксельного карандаша. Оное сглаживание в однопиксельном режиме на холсте в 32 пикселя будет делать следующее (Ражалпраграмы Наджави, которые не сумели это осмыслить, дружно отправляются в сад и секут себя метлой неприкасаемых до крови): при проведении штриха семплировать положение пера и запоминать положения, не попадающие в пиксель. Этот подход конечно же приводит к сильному просиру, потому что зафиксированные точки приложения пера с субпиксельной точностью при выключенном сглаживания (antialiasing) просто исчезают (не регистрируются). Следовательно...

Smoothing Check

Это решает проблему на 80 процентов, помимо этого рекомендуется отключить вариацию диаметра карандаша по нажатию. Кстати угадайте, почему обнаружить эту фишку мне раньше не удавалось? Да потому, что smoothing по-умолчанию всегда включен! А теперь вопрос, причем не только к индусам, но и просто к любопытным читателям: кому вообще нужен рисовальный пакет без этого smoothing? Только попробовав например Paint во flame понимаешь, насколько Адобы погрязли в собственном болоте. Угадайте, с какой скоростью Flame семплирует положение кисти? Правильно дети, с частотой обновления экрана (что и есть единственное правильное решение). Без галочек. Более того, существует специальный режим, привязанный к видеокарте, который использует непосредственно двойной экранный буфер для мягкого рисунка. Угадайте, где мягче рисовалка - у флейма на тухленьком Octane II или у бангалорской дряни, работающей на моем G5 (примерно вдвое быстрее SGI Tezro по "часам")?

P.S. В следующей серии мы обсудим, как с помощью самого продвинутого графического редактора нарисовать растровую линию однопиксельной толищны.

P.P.S. Все функции, упоминаемые Лешей Соловьевым и комментаторами во флейме есть (включая трансформации от трапеции), только без CMYK, ибо он ему нах не сдался. Жалко только что минимальный компетишен фотошопу стоит четверть миллиона.

Suspects: Mac

Proizvodstvo

Просидев за флеймом добрые полгода с ужасом читаю подобное.

Хорошо еще сам не успел напороться. Надеюсь эплы как-то обплывут это, больно уж позорно. А наш ответ Чемберлену как ни странно 96-го года выпуска - все uncompressed и все 10-12 bit. Приказ по камбузу - на спичках не экономить.

Suspects: Mac

Истинная ненависть

Став директором компании я бы начал с увольнения пидараса, купившего и установившего это.

Hatred

Ненавижу.

use Microsoft Office Word 2003 as your e-mail editor

Всю жизнь мечтал бля.

Suspects: Случайное Mac

Check this out

Оказывается местные голландские товарищи написали очень даже элегантный инвойсер - целиком для Мака, на Cocoa и с интерфейсом которому Keynote позавидует.

Само собой сайт инвойсера построен известно на чем. Бетонные дельфи-чудовища как-то не канают :-)

Suspects: Mac

Пригодится

Тип для коллег по цеху (он неочевидный, но приятный)

More on this...

Suspects: Mac

А теперь

...я расскажу тебе, что такое "позорище".

Serial-Wonkiness

Suspects: Mac

Firefox починен

После долгого копания в nightlies енота для Мака включен движок Cairo и сопутствующий ему рендеринг шрифтов. Это значит, что вот этого безобразия больше не будет.

Firefox-Proper-Rendering

Качайте свою firefox nightly с оф.сайта. Другое дело, что ни один экстеншен с ним не работает (ха!).

Билд firefox 2 с ATSUI font rendering кстати пока еще доступен здесь.

Suspects: Веб-стройка Mac

RubyOSA

Однако.

RubyOSA is free-software, covered by a standard BSD license and is copyrighted 2006 (c) Apple Computer Inc.

Suspects: Mac

Почему мак-юзеры ненавидят Firefox

Ребята, то что пишут про внешний вид кнопок у Firefox на Маке - совершеннейшая лабуда. Да, кнопки - образец уродства (более того, стилизация контролов веб-страницей считается у макюзеров моветоном - и rightfully so).

То есть конечно это погано:

Firefox Bad Widgets

чего и говорить.

More on this...

Suspects: Веб-стройка Mac Юникод

KB-5000

Если и было что-то, достойное ненависти в моем G5 Quad, так это клавиатура.

Хуже клавиатуры Apple не продавала с машинами никогда. Бывшие темой для воплей мини-клавиатура и мышка-плюшка (горячо мной любимая, в отличие от Apple Pro Mouse) были на голову выше - имели нормальные неглубокие клавиши и мягкое нажатие. Вообще Apple - клавиатуры всегда пользовались славой очень хороших, одна из них даже считалась лучшей в своем классе. Сделанная с нее macally, с которой я познакомился в 96 году была даже лучше – толстая резиновая мембрана, конструкция всего на нескольких винтах. После облития кофе и пивом ее можно было разобрать вслепую, окунуть на полдня в ванну и, высушив "применить вновь".

С приходом Джобса все изменилось.

More on this...

Suspects: Mac

Жестоко

Picture 1-1

Если это не называется засадить Adobe по самые небалуй то я не знаю что это. Ждите прекращения выпуска AfterEffects под Мак.

P.S. Для справки - раньше цена была такая же но с еще одним ноликом.

Похоже, стоит ожидать что-то вроде Flame от эпла на новых интел-башнях в августе, за много денег. Скорее бы.

Suspects: Mac

Требуется верстальщик-полиграфист в Москве

Маленькому (но очень качественному) издательству в Москве требуется верстальщик. Основной профиль работы - сборка полноцветных макетов больших книг с большим количеством (качественных) иллюстраций и текста, работа с корректорами и авторами. Непосредственный и единственный руководитель - арт-директор издательства.

More on this...

Suspects: Mac Дизайн

Note to self

Пятнадцатый закон Оприхтера: Если у вас планшет Intuos старше Intuos3 или Graphire, и ваш курсор непроизвольно трясется - это не похмелье, а планшет от CRT-экрана надо отодвинуть.

Поправка к пятнадцатому закону: Если у не такой планшет, нету планшета или LCD-монитор -- поздравляем -- это таки похмелье.

Вывод из пятнадцатого закона: если у вас CRT-монитор и вы собрались купить б/у планшет -- подумайте дважды - достаточна ли глубина вашего стола чтобы вместить планшет, монитор и минимум 25 сантиметров буфера.

Чтоб я знал. Рисовать же невозможно.

Suspects: Mac

А есть среди нас и такие....

5 chevron rating system, однако.

Особенно умиляют обои и конечно же набор иконок бомбардировочных эксадрилий. For the lovely ones deployed in the military overseas, да...

Suspects: Mac

Quartz Extreme 3D - лучше не надо...

Если кто задавался вопросом, что бывает от включения Quartz 2D Extreme (и почему он по дефолту отключен):

Picture 4

Вот такое вот бывает.

Suspects: Mac

И еще мало

Это про такое вот.

Про офисный планктон я уже говорил - а вот набраться наглости и задавать такие вопросы это уже следующая фаза. Вон с радара, cheap shit.

Suspects: Mac

Ну и наедимся

Macs do Windows too. Скоро они по этому поводу будут не-do многое из того, что сейчас приходится. На нас просто сэкономят производители софта.

Тем временем дешевый офисный планктон прет со страшной силой.

P.S. Если кто-то против такой точки зрения мне скрывать нечего.

More on this...

Suspects: Mac

В двенадцать часов по ночам

Из описания апдейта MacOS 10.4.6:

Aperture will no longer unexpectedly quit when exporting a file with keywords that contain twelve or more Cyrillic characters.

Главное ведь нашли же!

Suspects: Mac Из писем и газет

Дайте

Проапгрейдили панель управления сайтом.

About Upgrade

К нуждам веб-разработки это имеет крайне опосредованное отношение, зато к тому ради чего я сайты однажды брошу - более чем непосредственное!

Примерно так происходит рендеринг простой сцены для учебного проекта (всего-то жалкие полторы тысячи небоскребов):

About Cpuperf

Осталось добавить пару-тройку нужных компонентов и можно приступать к мелкой отраслевой деятельности.

Workstation

Вжжжж

Сразу заметил, что на такой машине раньше я просто не работал. Это что-то с чем-то (понятно что Quad G5 спокойно делает доступные на данный момент Intel и AMD - решения) - по ощущению обычные задачи не тормозят вообще. Спокойно работают одновременно десятка два приложений (включая ресурсоемкие). Один из моих прошлогодних роликов, прожевываемый лаптопом за полтора часа, этот монстр выплевывает уже через 15 минут (и на машине в это время можно работать дальше).

Dock

Много вентиляторов (девять), но они заводятся на полную мощность только при запуске машины - в дальнейшем работает тише двойного G4. Умилило замечание внутри корпуса - "При обнаружении следов влаги немедленно свяжитесь с сервисным центром". Жалко что нету бачка для заливки охлаждающего контура, как в пулемете "Максим" - она бы такому аппарату была к лицу.

Ну и сответственно

Picture 1

More on this...

Suspects: Mac

Сайтов много - Мак один

Уже давно у меня была проблемка. В разработке постоянно много сайтов которые надо ссылать на локальную машину. Запускать сервера по очереди неудобно, вносить каждый сайт в списки - устанешь очень быстро.

В итоге около года назад родился скриптик (запускается только через sudo):

#!/usr/bin/env ruby
SitesDir = '/Sites'
DomainSuffix = `hostname`.gsub('.local', '').downcase.gsub(/\s/, '')

###############################################
`nidump hosts .`.split("\n").uniq.sort.each do | dir |
  next unless (dir.split('.').pop == DomainSuffix)
  host = dir.split("\t").pop
  cmd = `niutil -destroy . /machines/#{host}`
end

Dir.entries(SitesDir).each do | entry |
  next if (!File.stat("#{SitesDir}/#{entry}").directory? || entry == '.' || entry == '..')
  puts "> Adding website #{entry}.#{DomainSuffix}"
  `niutil -create . /machines/#{entry}.#{DomainSuffix}`
  `niutil -createprop . /machines/#{entry}.#{DomainSuffix} ip_address 127.0.0.1`
end

Что оно делает? Сканирует папку Sites, и создает для каждой подпапки ссылку в NetInfo (подобии /etc/hosts только удобнее и веселее) на локальную машину, где имя папки - домен второго уровня, а первого - имя машины. Допустим, одну мою машину зовут exile а другую turbine (да, только латиницей и без пробелов - иначе вам не сюда). При этом в папке Sites есть подпапки search, blog, live и client. Это автоматически создаст нам следующие домены ссылающиеся на локальную машину:

  • search.exile и search.turbine
  • blog.exile и blog.turbine
  • live.exile и live.turbine
  • client.exile и client.turbine

После этого пользуясь mass virtual hosting в Апаче можно просто подцеплять сайты автоматически, без всяких Денверов. Имя машины задается в системной панели Sharing.

P.S. С помощью NetInfo можно делать много других занятных штук - например, автоматически создавать маунты сетевых папок с общими шрифтами, музыкой и настройками программ. Подробнее тут. К слову, все это было (и работало по IP-сети) еще до того как вышел Windows for Workgroups. Один из компьютеров с NetInfo подарил нам первый в мире веб-сайт и веб-браузер, а потом другой компьютер с ним же был первым веб-сервером.

Suspects: Веб-стройка Mac

История бесчинств

Гнусные истории вегда начинаются совершенно невинно.

История из жизни. Некий студент (назовем его Х) делает сайт с работами своиз состудентов. Бог с ним, что сайт сделан во Flash (и послать кому-либо линк на свою работу на нем невоможно). Бог с ним, что видео на нем хранится в SFW (совершенно неоптимальном формате, рассчитаном в первую очередь на плохие компьютеры непосвященных юзеров - которые на этот сайт все равно не пойдут поскольку он отраслевой).

А теперь коронный удар - оный студент еще и выбрал размер "окошка" нечетным. Поясню -- Ни один существующий цифровой видео-кино-формат не использует нечетные пиксельные размеры. Просто потому что такой кадр нельзя уменьшить вдвое с минимальными потерями в качестве за минимальное время!

Как это случилось? Очень просто. Человек взял и шлепнул прямоугольник произвольных пропорций в свой Flash-файл.

Маленькая справка от редакции - пискельные размеры PAL и NTSC тем и хороши, что их можно спокойно поделить на 2, 3 и 4 без субпиксельного ресемплинга (стороны делятся на эти числа без остатка). NTSC в этом смысле еще удобнее - он делится и на 5 тоже. Это на случай если вам показалось, что эти размеры выбраны как стандарты без математической причины.

А теперь мне приходится искать программу, поддерживающую экспорт (фактически выведенного из обращения) SWF с нечетными пиксельными размерами на MacOS. Это в то время как простейший HTML-сайт с QuickTime-фильмами в окнах было бы сделать дешевле, проще, быстрее - и с лучшим качеством при меньшей трате полосы у посетителей. С нормальной адресацией и легкой компрессией. Последние версии H.264 делают файлы такого качества, после которого DVD выглядят как замыленный анимированный баннер.

Потому что и здесь Flash вреден, в особенности в сочетании с идиотами.

Suspects: Mac

Unicode и Ruby

Следуя за длинным рантом рассказываю о том, как я расправляюсь с юникодом в Ruby "своим путем". Этот подход успешно применяется, в том числе в RuTils и на всех rails-работах, которые я выполняю.

Technorati Tags: , ,

More on this...

Suspects: Веб-стройка Mac Юникод

В аду сегодня холодно

Вслед за MIPS, отправленным в Nintendo 64 (и оставшимся по-хорошему только в Tezro), дорогой храбрых (в Xbox) отправляется Power970 - чтобы вернуть нас в мир дешевого, перегретого, 32-х битного железа со старым набором команд, под которое все надо переписывать (но не перепишут), перекомпилировать (чего никто делать вовремя не будет) и перепридумывать.

Нас наебали. С этой компанией бывает. Мне то еще как-то, а каково людям, вчера купившим топовый G5?

Пора сделать secure investment и заменить все это писюганское (а теперь и около-писюганское) барахло на какой-нибудь Octane V12 недавней серии. Чтобы две программы (со звездочкой), фремйбуфер, планшет и два монитора. А то от смрада объективной реальности как-то душно становится, вам не кажется?

Suspects: Mac

Добро пожаловать в Бразилию

В связи с написанием очередного эссе по кино начал замечать в окружающей реальности фрагменты истинно бразилианского характера.

Update Reupdate

Прямо таки да.

Here is a receipt for your husband. And here is my receipt for your receipt.

Suspects: Mac

Позитивные тенденции

Как-то незаметно подошел к концу апрель, а я забыл поздравить двух коллег с поворотным моментом.

В апреле Андрей Смирнов (a.k.a. id-as.com) и Евгений Федоренко (a.k.a. daysleepersdesign) присоеднились нашему скромному сообществу, застолбив свой дизайнерский статус не только отличными работами, но и соответствующим Инструментом.

Я искренне завидую вышеупомянутым господам (до сих пор вспоминаю, как у меня “кликнуло” с Apple в 98 году когда я волею специфических обстоятельств пересел со разновеликих Пентиумов за старенький PowerMac 7100/80), и желаю им чтобы им никогда не пришлось обращаться за гарнтийным ремонтом, DVD-приводы не загрязнялись, HFS+ журналировалась и David Hyatt регулярно радовал новыми достижениями Safari в области поддержки CSS.

Буду ожидать момента радостного CSS-спаринга через SubEthaEdit. И надеюсь, что на вас дело не кончится. Если возникнет нужда в добром совете - стучитесь в почту.

P.S. Самое приятное и неожиданное - даже не система, а ее пользователи. Надеюсь что и в этом плане у новоприбывших все сложится удачно.

Suspects: Mac

Adobe + Macromedia

Дабы не повторяться, скажу что я думаю по этом поводу чужими словами.

Только следует добавить:

  • Директор на пенсии: Джон Уорнок
  • Директор почти на пенсии: Брюс Чайзен
  • Директор-буквовед: Девид Слимбах.

Rest in peace, нормальный рынок дизайнерского софта.

Suspects: Mac

Индусы наступают

Текстофобия

Итак, титул дрянь месяца получает Illustrator CS.

“новый текстовый движок” замедляет его работу раза в три. Когда в этот текстовый движок помещают много текста, начинается приятное - например, в процессе работы над последним постером (за одну смену - 4 часа) Illustrator CS упал восемь раз. Я считал.

More on this...

Suspects: Mac

Мир Японских Негодяев

Знакомьтесь, дети:

Ямада-сан, президент WACOM

Запомните этого человека в лицо. Разговор сейчас пойдет как раз об этом.

Итак, для начала несколько фактов:

  • В любой области есть незаменимые вещи
  • В любой компьютерной области есть незаменимое железо и незаменимый софт
  • Любая компания производящая незаменимое железо или (а как правило - и) незаменимый софт ведет себя как истинный Японский Негодяй
More on this...

Suspects: Mac

Справедливая реклама

Справедливые (и очень "колючие") баннеры висят на конференции Apple-разработчиков WWDC, проходящей сейчас в Калифорнии.

Редмонд, запускай ксероксы!

Подпись на баннере -- "Редмонд, запускай ксероксы!"

Suspects: Mac

Не прошло и 10 лет

Готовится к релизу Skype для MacOS X. Похоже, что голосовому iChat'у наконец-то будет полноценная кроссплатформенная альтернатива.

Suspects: Mac

Ваши тамбнейлы недостаточно красивы

Редкий случай для эпловской продукции - наткнулся на перл в новой версии iPhoto

Upgrade thumbnails

Предлагаю в следующую версию Microsoft Word встроить ultimate функцию!

В новой версии Microsoft Word сильно улучшены возможности по работе с файлами формата .DOC
Для продолжения работы я ЩАС КАК сделаю вам апгрейд всех ваших текстов в новую версию своего замечательного формата...

А вторую интерфейсную радость подкинул провайдер на своей страничке с биллингом
Ну распечатать!
Перевод кнопки звучит так:

Распечатать эту адаптированную для печати страницу

Suspects: Случайное Mac

Локализантеры

Они умеют это делать

А они - нет.

More on this...

Suspects: Mac

Немного о комментариях, юникоде и русских шрифтах

Итак, обнаружилось, что у некоторых людей отсылаемые комментарии показываются не по русски. Исследовав проблему, администрация сервера установила, что пользователям нужно произвести следующие действия для решения этой проблемы.

Эксплорер - в Trash!

Пользователи, не совершившие данную операцию, будут смотреть сайт в неинтерактивном режиме. Я буду строг в этом вопросе. И даже не пытайтесь. В скором времени будет установлен скрипт, блокирующий прием комментариев от пользователей Mac IE. Огнем и мечом. То есть нет, я конечно подумаю что можно сделать, но шансы минимальны. Качайте нормальный браузер, а если вы пользуетесь IE из-за админа - чтож... монтировки нынче дешевы.

Update: решение проблемы найдено, причем его можно применять не заставляя пользователей менять настройки IE. Описание фикса (оно же - рекомендация всем, делающим сайты - интернет то у нас еще кроссплатформенный) читаем тут.

Suspects: Mac

Радиоручка

Развалилось в руках. Зрелище эзотерическое... Трижды сказал себе спасибо, что купил запасную осенью.

More on this...

Suspects: Mac

Tablet-oriented GUI

Есть такая хитрость в интерфейсах некоторых графических программ. Как известно, один из ключей к быстрой и эффективной работе - владение шорткатами. Но есть и другой вариант оптимизации - когда основной объем работы возлагается не на клавиатуру.

More on this...

Suspects: Mac Дизайн

Неистовый фрик

Запускает на своем PowerBook 55 операционных систем. Есть многое на свете...

Перед такой перверсией я снимаю шляпу. Уже на Slashdot.

Update: Обязательно прочитайте про его предыдущий фетиш на Slashdot. Ссылку давать не буду. Вот это матерый человечище...

Suspects: Mac

Кому iPod?

да не простой, а золотой

Suspects: Mac

Голландцы как всегда впереди

Поскольку сайт этот на голландском, внимания на эту ситуацию пока никто не обращал. Тем не менее реальные галанские пасаны пробивают iTunes Music Store , причем довольно "иезуитскими методами".

More on this...

Suspects: Mac

Aspirine not included.