PHP + IIS = penis canina

Вот никогда бы не подумал, что всё так хреново. Поставил, прошел пару туториалов, всё рычит и фурычит. Но нужен curl. Скопировал пару либок в system32, curl страничка скомпилилась. Зато – здравствуй, access violation!.

Ну ладно. Забил на curl, перегрузился, пробую тупой get_contents… здравствуй, access violation!

Пистык, в-общем.

Ну и хрен с ним. Доктор сказал LAMP, Значит LAMP.

Вот было дело в наше время…

Вот захотел я PHP изучить – мне сразу из сети мануалы, среда разработки…(http://www.eclipse.org/pdt/) и вообще всего по уши. Сразу видно, популярный язык.

А я еще помню, как Димыч борду писал на ASP – методом научного тыка, а также путем привлечения всяких типа меня (такого же неуча) на помощь. “гуртом и батьку бить сподручней”.

Качу грязными траками через PHP туториалы и испытываю ностальгические чувства.

Еще смешное рекрутерское

На этот раз прислал письмо искатель работы:

I am a computer science graduate student at ЧЧЧЧ. Your job in software development is in an area that I would be interested in working in. I am about to graduate with Masters degree in computer science. I have work experience working in object oriented technologies(Java,C++). would you be willing to talk with me for a few minutes and help me see whether I might be interested in pursuing a career with your company? If thats not possible can you forward my resume to hiring managers? My resume is available at ЧЧЧЧЧЧЧЧ

Я просто без слов сижу.

PS Как вы уже, наверное, догадались по уровню снобизма, это индус. Этот фрукт, оказывается, интерн в LinkedIn. Там ему, видно, выдали от ворот поворот, и этот прынц соизволил оказать мне милость, почтить меня своей просьбой о том, чтобы я с ним посидел и разжевал ему, хочет ли он у нас работать или нет. Афигеть.

“Терпи, Дядя Федор, еще два платья осталось…”

Разбираем фотографии, урывками. Завтра(уже сегодня) опять нет времени – уезжаем поедать свежепойманного тунца к друзьям.

Из новостей:

(1) Проапгрейдил ВордПресс и LJXP.

(2) В связи с наглыми рекламными баннерами в ЖЖ трансляцию в жэжэшечку постепенно прекращаю. Первый шаг – вместо LJ-CUT теперь в постах будет ссылка на мой блог.

(3) Забываю все время. Нужно убить хостерскую рекламу на моем основном сайте. Гы. А пока пользуйтесь AdBlock Plus :)

А вот, чтобы вы не скучали, фотография, сделанная во время моего отпуска. Побережье Калифорнии, где-то между Сан-Симеоном и дорогой Насимиенто-Фергюссон. Я ж говорил, что там круто.

Continue reading

Language mashups &.NET interop – DSLs

When you think about it, to get your average data-driven web application off the ground you need to know HTML, CSS, C#/VB.NET with ASP.NET (PHP, Rails, etc), JavaScript, various XML dialects, and SQL

Только за эту фразу хочется его обнять, налить ему водки и сказать, “Как ты прав, братушка…”

Более того, то же самое нужно знать, например, чтобы полноценно писать юнит и лоад тесты для VSTS2008. Минус жабаскрипт и рельсу, конечно. Да и вообще это, по-моему, своего рода канд.минимум для прикладников-дженералистов типа меня.

PS
Кстати, кто посоветует тупой такой генератор красивых страничек, не очень дорогой и не очень сложный? Для личных целей нужен. Чтобы дизайнерски так вусивугом блоки распихать, присоединить все к базе данных, и при этом не сильно знать CSS и HTML. Никакого аякса. Не, я могу и ручками, но затраты времени непродуктивны. Приглядываюсь к MS Expression…

Rant on VTune: Most Useless Tooltip of the Year!

The text below is just my rant about VTune.
If you are not in the mood, just skip.
If you think I am wrong, correct me.

I just started to use VTune recently, I was using DevPartner before. Also I had some contact with Quantify, but it didn’t like the idea of profiling largest COM app in the world…

So I fired up VTune and run simple test. It worked. It collected samples. It even created a call graph. And at that moment my woe began.

Actually, it’s amazing – VTune collects more information than DevPartner Pro, but manages to render it in a very clunky way.

A VTune’s UI suffers from information overload.

A ‘Graph’ tab in call graph is useless – it only shows actual performance numbers in tooltips, so you cannot navigate, say, to the next heaviest call at a glance. Yes I’ve checked call graph preferences. No use.

Hacks like ‘show slowest path to bottom’ only work if you have single well-defined bottleneck in your system. If you found any use for a ‘Graph’ tab, respond immediately – I want to know.

‘Call list’ tab saved the day for me, with some learning curve related to unfamiliar terms (Quiz: what is Edge time?)

Source code view doesn’t give per-line timing information as expected (for each line). VTune has this information but you can only view it if you go to the source file where this function resides.

Again, ‘Call list’ goes to the rescue. I can live with this…

To collect call graph info and performance sampling info, VTune actually runs your app twice – first to sample, then to collect call graph. These two results are not related and displayed separately. I have VSTE 2008, so I just don’t collect samples.

I cannot remove system DLLs from instrumentation – ‘only modules added by user can be removed’.
Yes, I can remove them from display, one at a time, for each run… This adds to a clutter. If there is a way to say ‘don’t show NTDLL.DLL in total list unless I tell you so’, I couldn’t find it.

The Tuning Assistant (much touted in the Tutorial) always ‘has no advice for the selected context’.

And, finally, the award:

Intel VTune 9.0 claims award for most useless tooltip of the year 2008!

Печальное (отвлекшись от изучения VTune)

Если судить по вот этому тесту: http://malaya-zemlya.livejournal.com/435247.html

то своё математическое образование я благополучно просрал. То есть вот эту фишку с Фибоначчей забыл начисто.

В ужасе читаю Algorithm Design Manual.

Куда податься бедному уроду? В управдомы надо, в управдомы..

PS Кстати, кто знает, как Maven-овскую зависимость заставить работать в эклипсе? Хочу чтобы war файл собирался с новым кодом, блинский фиг. И так попробовал, и сяк. Через mvn install работает, но я ведь хочу, чтобы с понтом, чтобы через eclipse.

Поставил maven2 eclipse plugin – че-то как-то не пашет, как требуется. Зато начало при каждом билде ходить во все репозитории, спасибо партии за это, без этого мне жизни не было, да…

UFTP – abstract

http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/8688/27521/01226022.pdf?tp=&isnumber=&arnumber=1226022

A UDP-based file transfer protocol with flow control using fuzzy logic approach
Jingsong Zhang; McLeod, R.D.
Electrical and Computer Engineering, 2003. IEEE CCECE 2003. Canadian Conference on
Volume 2, Issue , 4-7 May 2003 Page(s): 827 – 830 vol.2
Digital Object Identifier
Summary: A UDP-based application-level file transfer protocol, UFTP, with flow control using fuzzy logic is proposed in this paper. UFTP is designed for moving large-size files over WANs where traditional file transfer protocols are found to be very inefficient. Compared to FTP, which uses TCP as its transport-level protocol, it uses UDP packets to send data to avoid round trip propagation delay, a limiting factor in data transferring. The fuzzy flow control (FFC) module calculates the date flow rate for UFTP by monitoring the packet receive success rate and its rate of change, then by using a set of fuzzy linguistic rules. The design scheme of UFTP with FFC is explained in details and the performance of the FFC scheme is evaluated through experiments in a high-speed WAN environment. The experimental results show that UFTP, with flow control using FFC, is up to 7.4 times faster than the traditional protocol FTP. It is also shown that FFC offers fast transient response and leads to low end-to-end transmission delay.

Mediocre programmers tend to hire mediocre programmers

Не удивлюсь, если это уже кто-то сформулировал.

Дело не в том, что они проваливают на интервью “звезд”, это вряд ли. Просто у нас, середнячков, планка занижена :)

Если кто вдруг удивляется, с чего это я занялся самоанализом и самобичеванием – пусть почитает Stevey’s rants.
Вот этот, например: http://steve.yegge.googlepages.com/five-essential-phone-screen-questions


For example, you may find a candidate who decides that a Vehicle class should be a subclass of ParkingGarage, since garages contain cars. This is just busted, and it’s un-fixable in any reasonable amount of training time.

Last week I interviewed an SDE-2 candidate who made both of the mistakes above (a vehicle inheriting from garage, and the 2000-line C++ grep implementation.) He was by no means unusual, even for the past month. We’ve been bringing in many totally unqualified candidates.

Как мне это напоминает Митрофанушку… “дверь – это прилагательное, потому что прилагается к косяку”.

Пока, “Роскартография” и “Роснедвижимость”. Привет, федеральное агентство.

“президент подписал указ об упразднении с 1 октября 2008 года Федеральной регистрационной службы (Росрегистрации), Федерального агентства геодезии и картографии (Роскартографии) и Федерального агентства кадастра объектов недвижимости (Роснедвижимости).

В соответствии с указом, функции ведомств будут переданы Федеральному агентству по управлению государственным имуществом, а часть функций Росрегистрации по регистрации некоммерческих организаций (НКО), в том числе международных, передадут Минюсту РФ.”
(c) lenta.ru

Ну что, российские коллеги, какие у вас мнения по поводу судьбы роскартографии и многострадального кадастра?

Pragmatic rules of software engineering

сейчас начну вещать прописные истины:

1. Computer Science имеет такое же отношение к производству софта, как сопромат – к строительству зданий. То есть: без хорошей теории нормальной каши вообще не сваришь, но 80% процентов проделанной над проектом работы всё равно будет low-to-middle tech.

2. Отсюда вытекает, вообще говоря, разница между программистом-кодером и software engineer-ом. Те, кто способны сделать 20% of hi-tech code, являются инженерами проекта, остальные в нем кодят.

3. Можно иметь команду целиком из software engineer-ов. Эффективная структура управления разработкой при этом обычно радикально меняется. Пример: Agile vs traditional ‘waterfall’.

4. Команда, состоящая из одних кодеров, вполне работоспособна для некоторых классов задач.

4. Разработка софта – всего лишь часть проекта. Довольно часто – далеко не главная.

5. Поэтому часто разработкой софта руководит кодер, а не инженер. Иногда даже не кодер.

6. Если инженеры мотивированы правильно, то любой руководитель разработки сойдёт. Лишь бы человек был хороший.

7. Так же часто назначение не-инженера начальником разработки проваливает всю фазу дизайна к чертям собачьим. Что вы хотите, ну не инженер он в этой области, не хватает у него знаний, чтобы быть on a bleeding edge.

8. С другой стороны, хороший кодер может вытянуть проседающий программный продукт до хороших средних показателей практически в одиночку, по принципу “обработать напильником до готовности”. Мотивируйте его, дайте ему удобный development cycle и не мешайте ему работать.

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

10. Мотивация может вытянуть любой проект, даже при отсутствии бюджета. Пример: маковский калькулятор.

11. Иногда, чтобы что-то сделать, нужно просто взять и сделать. Это равно относится к кодерам, инженерам, начальникам разработки и менеджерам над начальниками.

12. Плох тот кодер, который не хочет стать инженером.

Без номера: когда инженерам наконец позволяют поинженерить после долгих лет кодерства, у них так блестят глаза… такая эйфория в воздухе, можно ножом резать…