Блог

Две директории Bin на Windows сервере

Сейчас переделываю свои Windows сайты на Microsoft MVC и первым под раздачу попал www.canada-area.com. Вчера быстренько произвел миграцию кода под новый вид и немного изменил дизайн. Хотя нет, дизайн я изменил капитально. Сейчас сайт бегает и большинство работает, но над сайтом еще работаю. В ближайшие время придется заняться рефакторингом, потому что на данный момент в принципе у сайта код все тот же Web Forms, просто все это крутится на движке MVC. В общем работы еще дофига.

Но я не об этом хотел сегодня рассказать. Не знаю когда это произошло, но у меня сейчас на сервере две директории bin. У одно из них первая буква большая, а у другой маленькая, вот и вся разница. Самое интересное, удалить не могу ни одну из них. Хотя нет, директорию Bin удаляю, если остановить сайт, но сайт перестает работать, а вот bin (с маленькой b) удалить не могу даже тогда, когда сайт остановлен.

Содержимое директорий удаляется без проблем. Но самое интересное, что сайт работает корректно, только если в обе директории я закачаю файл Canada.dll – скомпилированный код сайта. Если я удалю этот файл хотя бы из одной из директорий, сайт падает. По ходу сервер использует обе из них. Кто-нибудь встречался с подобной фигней?

Сессии в Safari

На работе делали говорящую каптчу. Ее код хранится в сессии (мне не нравится это, но так уж сделано). Когда народ кликает по ссылке проигрывания звука, происходит запрос на сервер, который загружает аудиофайл и проигрываем его в браузере. Все просто и все работает, пока мы не решили попробовать Safari.

В Safari для воспроизведения звука используется QuickTime и именно это чудо природы отправляет запрос на сервер. Причем он создает свою собственную сессию, поэтому сохраненные в сессии браузера данные прочитать не удается. Если уж создается отдельное приложение, то сессию могли бы хотя бы разделить, ведь QuickTime получается работает в контексте браузера.

Хакерский язык программирования

Только что в комментариях к заметке Актуальный язык программирования увидел следующую кучку вопросов: А как насчёт Питона?? Разве не хакерский язык?? Или у тебя на него идиосинкразия?? Почему?? . Решил вынести в отдельную тему, потому что тут есть что сказать, и возможно кому-то пообсуждать. Этот комментарий был к заметке про актуальный язык программирования и видимо его автор не понял меня или я плохо высказывался в заметке.

Никакой реакции на питон у меня нет. Просто у меня есть PHP и C#, с помощью которых я могу делать все, что мне нужно. Переходить на питон или какой-то другой язык только потому, что где-то написано, что он круче, не собираюсь. Не язык красит программиста, а программист красит язык. Во как офигенно сказанул. От того, что кто-то пишет на супер пупер языке, супер пупер программистами они не становятся.

Актуальный язык программирования

Сегодня получил актуальный вопрос, который может оказаться у любого начинающего программиста в мыслях:

Какой язык программирования сейчас наиболее актуальна, с какого языка начать изучение чтоб стать хорошим программистом(лучше хакером) и/или системном админом(я уже знаю дельфи)

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

Как красиво оформить file input тэг

Сейчас на работе делаю небольшой сайт, на котором решили сделать кнопку загрузки файлов нестандартной. Наши дизайнеры любят выпендриваться, а программисты потом мучаются. Дело в том, что input тэг типа file не поддается оформлению. Возможно в последних браузерах благодаря HTML5 это возможно, но в старых это нереально. Поэтому приходится выпендриваться.

Простейший выпендреж – поместить на форму рисунок кнопки, тут же рядом поставить поле для выбора фала: file. Код html будет выглядеть примерно так:

<button name=”decorbutton" class="decorbutton"/> <input type="file" />

Освобождение ресурсов в .NET приложениях

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

В общем, надеюсь, что вам будет интересно. Пока писал эту заметку, получилась целая статья и я ее перенес в соответствующий раздел.

Создание View для MVC в MonoDevelop

Сейчас работаю в MonoDevelop над MVC сайтом и пока мне в большинстве все нравится. Работать можно, и даже очень можно. Просто у меня другого выхода нет, ведь я пишу проекты под MacOS и на него Visual Studio поставить не получиться, а использовать виртуальную машину не хочу. Да и не вижу смысла, ведь MonoDevelop вполне нормальный для работы.

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

Радует только то, что View в MVC проекте не нужно создавать каждые пять минут. Но перезапускать среду разработки каждый день даже 4 раза все же не улыбает. Надеюсь, что скоро будет обновление. Но надежды умирают после нового года. Сейчас все же новогодние праздники, поэтому обновления скорей всего не будет. А жаль.

Переход на Microsoft MVC 3.0

Сейчас на работе делаю небольшой сайт для одной американской компании и делаю это с использованием Microsoft MVC 3.0. Ну что сказать, наконец Microsoft смогла создать реально хороший MVC. Не понимаю, что они так долго и нудно тупили.

Вообще не понимаю, о чем думали в MS, когда пытались втулить народу web Forms. Это же такое дерьмо, с которым работать нереально. Ничего крупнее блога писать на формах невозможно. Любой крупный сайт должен обязательно разделять код на Model, View и Controller. Не знаю, что упало на голову Microsoft, что они решили нарушить эту банальную истину и сделать все на основе форм.

В принципе, с формами тоже можно сделать разделение на Model, View и Controller, просто View получается на столько тупорылое, что с ним работать нельзя. Ведь View – это aspx файл, а котроллер – это привязанный к view файл кода – cs. Не все это поняли и я видел проекты, в которых явно роль view выполнял cs, а функции контроллера выносили на дополнительный промежуточный уровень между моделью и контроллером. В результате получалось еще большее фуфло.

Первые пытки в Objective-C

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

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

Перспективы программирования под Apple

Один знакомый программист сказал мне одну очень умную штуку. В наше время, большая часть разработки приложений уходит в Индию, где нормо-час дерьмопрограммиста стоит 18 долларов. Некоторые особо рисковые американцы идут на такой риск ради экономии, ведь в США нормо-час программиста до 10 раз дороже. В Нью-Йорке в серьезных конторах нормо-час программиста превышает 200 долларов.

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

Но что не пойдет в офшор, так это iOS разработка. Она пока ведется в основном на североамериканском континенте. Во первых, это связано с дороговизной разработки. В принципе, сама среда бесплатна, но для того, чтобы писать для iPad или iPhone, нужно как минимум купить компьютер Mac. Умельцы ставят MacOS на писюшное железо (благо процессор один и тот же), но слышал, что работает такое счастье нефантаново.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне