Блог

Почему программист не должен использовать Денвер?

Есть такие установщики для WAMP (Windows Apache MySQL PHP) или MAMP (Mac Apache MySQL PHP), которые запустил, и они ставят что-то на локальную систему, что упрощает конфигурирование локального Web сервера, базы данных и PHP. Создание нового сайта для локальной разработки потом сводится к простому вводу домена для сайта, выбору директории и клику мышкой. Все остальное пакет берет на себя. 

Я когда-то пользовался такими вещами, сам использовал программу MAMP локально. Ну действительно, на много проще. 

Только вот рабочие сервера не будут работать на подобной программе, там уже точно будут ставить LAMP с репозитория и каждый по отдельности. Если программисты могут писать локально сайт на Маке, то на реальном сервере он скорей всего будет крутится на Linux виртуалке, так уж исторически повелось. Запускать PHP сайты на Windows сервера немного расточительно. Не вижу смысла тратить так деньги. 

Сделать свой собственный git репозиторий

Давно уже хотел купить себе git хранилище, и даже завёл себе аккаунт на Bitbucket, но почему-то я им так и не пользовался. Я залил туда один репозиторий с CyD Network Utilities, но так и не использовал его. Сегодня я решил этот репозиторий удалить. 

Судя по ценам, Bitbucket вполне приемлем. На нем бесплатно можно получить репозиторий, которым смогут пользоваться до 5 человек. Приятно. А ведь 5-ю аккаунтами может реально пользоваться 100 человек, так что ограничений почти нет :). 

На github цены на много выше, тут бесплатно можно получить только открытый репозиторий. За личные репозитории придётся хорошо платить, за пять личных хранилищ кода придётся отдавать 7 американских долларов в месяц. Дороговато. 

Удаленное программирование

Давно хотел попробовать парное программирование и сейчас у меня почти получилось. Я занимаюсь не парным, а удаленным программированием. 

Сейчас я по контракту иногда консультирую одну компанию, и там специалистам не разрешают дать мне удалённый доступ. Вместо этого со мной делятся их рабочим столом через специальную программу (похожа на WebEx от Cisco, но это кажется от IBM), и я могу только говорить по телефону что делать. 

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

Автоматические генераторы форм

Больше всего меня бесят различные теги или операторы в языках программирования и фреймворках, которые автоматически генерируют HTML для форм и их параметров. Я пытался использовать подобные вещи в Microsoft MVC, но не понял выводы. 

Какой преимущество у Html.BeginForm по сравнению с простым классическим тегом <form>. У второго точно одно преимущество есть - нужно меньше нажатий клавиш, чтобы напечатать тэг. 

Я слышал разные попытки объяснить чем генераторы лучше, но если честно, так и не увидел ничего, чтобы я сказал: "Да, это круть, это стоит гемора с необходимостью печатать больше символов". 

Программирование исчезнет к 2060-му году

Прочитал сегодня заметку о том, что программирование скоро исчезнет (https://medium.com/@dtauerbach/software-engineers-will-be-obsolete-by-2060-2a214fdf9737), и даже названа примерная дата – 2060-й год. Ну да, к этому году я скорей всего уже не доживу, чтобы подтвердить эту теорию, но все же, попробую ее опровергнуть уже сейчас. Рассмотрим несколько основополагающих принципов заметки. 

To be sure, software is becoming more efficient, in that sophisticated frameworks have been developed so that fewer lines of source code have to be written, and advanced programming languages, compilers and interpreters have made the life of the programmer much easier than it had been in the 1980s or 1990s.

Краткий перевод: Программирование становится более эффективным и разрабатываются супер фреймворки, которые позволяют писать меньше кода, а продвинутые языки программирования, компиляторы и интерпретаторы созданы для того, чтобы сделать жизнь программистов проще, чем это было в 80-е и 90-е. 

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

Отладка приложений под IIS

Я использую урезанный IIS, только когда запускаю небольшие проекты или тесты. На работе чаще приходится работать с большим сайтами, которые я больше предпочитаю запускать из под полноценного IIS. Один раз сконфигурирован и можно использовать даже без запущенной Visual Studio. 

Я вообще не фанат запускать Web проекты из VS. Можно сконфигурировать его так, чтобы он использовал полноценный IIS при запуске, но опять же, я не люблю запускать. 

Как же тогда я отлаживаю проекты? Да очень просто, подключаюсь к процессу. В меню Debug выбираю Attach to Process, в появившемся окне процессов выбираю внизу галочку Показать процессы всех пользователей, и сортирую процессы в обратном порядке. Теперь наверху должны быть мена на w3… я точно даже не помню имя процесса, кажется w3wp. Выбираю его и все, Visual Studio уже готов к отладке. 

Swift с открытым исходным кодом

Компания Apple пускает свой новый язык программирования Swift в мир сокрытых технологий - Open Source. И чем это теперь грозит нам, простым пользователям? 

Ну на платформах Apple особо сильных изменений я не ожидаю. Да, компания сказала, что ждет с распростертыми объятиями код народа и готова принимать его, но не думаю, что будет много вклада. Тут мне кажется яблочники просто хотят повторить то, что сделала Microsoft со своим .NET. 

Но вот что я жду с нетерпением, так это возможность работы со Swift в Linux и возможно даже хорошую IDE. Я в основном работаю с сервисами Linux систем, но уже давно вынашиваю планы все же приобрести дешевенький ноутбук и использовать его чисто под Linux. Раньше для этих целей я использовал RoverBook еще на процессоре Pentium M, но уже года 4 дистрибутивы не ставятся на него из-за проблем не совместимости железа. Пересобирать дистрибутивы под этот ноут что-то мне не улыбает.

Сломал сайты на локальной машине

Все свои сайты на AMP (Apache, MySQL и PHP)  я разрабатываю на маке, поэтому я первую букву не указываю. Хотя, наверно будет правильно всё же указывать, потому что хостинг у меня всё же на Linux серверах. 

Короче, я работал на PHP настройках по умолчанию и даже не заморачивался, потому что их вполне достаточно. Но тут понадобилось изменить временную зону, поэтому я скопировал файл /etc/php.ini.default в /etc/php.ini, переключился в Brackets и спокойно продолжил работать. 

Наверно через пол часа я запустил новый сайт, а он не работает. Первое, на что я стал грешить - настройки в Apache конфигурационных файлов. Я создал новый сайт, на новом для меня Symfony, который я не использовал никогда.

Отладка lambda expressions

Сколько времени уже существует LINQ? Уже наверно лет пять, но к сожалению до сих пор нельзя запускать эти выражения во время отладки в отношении массивов. 

Ты используешь Entity Framework и LINQ для доступа к базам данных? Дьявол тебе судья, Бог точно твое дело откажется рассматривать.

Мир переворачивается с .NET Native

Еще лет 7 назад (я еще тогда жил в России) я говорил, что в будущем мир может перевернуться и .NET станет основой для Windows. Вот это день настает, потому что скоро C# код можно будет компилировать в родные команды процессора. Никаких промежуточных IL. C# уже основной язык даже у самой MS.

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

Да, для телефонов и планшетов возможность запускать приложения сразу же из машинных инструкций является практически критичной, потому что не нужно компилировать  код налету и это сохранит батарею и увеличит скорость запуска. Но ведь уже сейчас все приложения для AppStore компилируются в дополнительно промежуточный код. Я не помню как он точно называется, но что-то типа Machine Dependancy IL. Для конечного железа остается работы совсем чуть чуть, чтобы только навести связи. 

О блоге

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

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

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

Пишите мне