Вчера у меня OS X обновилась до Yosemite 10.10.5. Ели я не ошибаюсь, то ElCapitain должен была так нумероваться, но в ОС пока я не увидел ничего нового. Возможно я все же не прав с номером. У меня просто Yosemite была установлена еще с Beta версии и мне постоянно приходят в центре обновления какие-то обновления с бета символикой. Думал может Apple решила толкнуть и ElCapitain, хотя я пока не планирую ничего делать.
Сегодня с утра встал, покушал, собрал вещи и поехал на работу. В автобусе как всегда открыл Mac и хотел уже начать работать над сайтом, как вдруг узнаю, что он не загружается. Сначала я подумал, что обновление снесло все конфиги (кстати, нужно бы сделать их резервную копию на внешний носитель). Проверил, все вроде бы как и было. Поверхностный взгляд указал, что все вроде бы нормально.
Я на Mac OS очень много пишу PHP кода и для отладки долгое время использовал MAMP, который достаточно удобно и просто можно настроить. Да даже настраивать ничего не нужно, просто установил программу и вот уже все работает. Но после последнего обновления ОС он перестал запускать Apache, что очень даже удивительно, ведь MacOS имеет BSD корни и в нем даже установлен Apache второго поколения.
Ну да ладно, простота - это конечно удобно и красиво, но заморачиваться с MAMP тоже не хотелось, поэтому я решил запустить встроенный Apache и работать с ним. Во время конфигурации особо проблем не возникло, я быстро подправил httpd коняги:
Новый язык программирования от Apple - Swift меня сегодня сильно удивил. Строки в этом языке по современному не мутируемы. Логично, с точки зрения безопасности. Каждый раз, когда вы в коде пишете:
s = s + “test”
В реальности для s выделяется новая память, а не добавляется к существующей. Это правильно. Язык Swift объектный и все там объекты. Но внимание - для получения длины строки нужно использовать глобальную функцию countElements, которая подсчитывает количество элементов простой интеграцией по всем символам.
Я уже писал, что при работе с базами данных предпочитаю Dapper и его я достаточно серьезно затрагивал в своей электронной книге по большим сайтам. Вчера нашел в Dapper большой недостаток для тех, кто использует varchar строки.
Не все еще перешли на Unicode и некоторые до сих пор используют varchar, хотя давно уже пора перейти на nvarchar. Проблема в том, что Dapper в качестве строк использует как раз nvarchar, а Transact-SQL оказывается не очень дружит с преобразованиями строк.
У меня директор в компании, которому я подчиняюсь, любит работать с vim, причем это девушка и она прекрасно пишет исходный код C# в этом редакторе из под Windows. И это не смотря на то, что для C# на много лучше подходит Visual Studio.
Интересный прикол в C#. Нельзя объявить свойство с таким же именем. что и имя класса. Следующий код завершится ошибкой:
public class UniqueDiscCode { System.String _UniqueDiscCode; public System.String UniqueDiscCode { get { return _UniqueDiscCode; } set { _UniqueDiscCode = value; } } }
Удивительно сколько народу пользуется Entity Framework и даже среди тех, кто работает над сайтами с высокой нагрузкой. Я как-то использовал Entity Framework и на мой взгляд достаточно удобно, но стоит ли удобство скорости?
Недавно получил письмо с вопросом о том, зачем нужны интерфейсы, если это всего лишь описание функций и там нет реализации кода. Наследование на много лучше, потому что можно создать объекты с нужной реализацией и просто наследовать их.
Какой кайф от использования свойства Value? Уже не в первый раз у нас на работе укладывают разные части сайта тем, что используют что-то типа:
int? test = 1;
int test2 = test.Value;
Я спросил программиста, который написал подобного плана код - нафига ты использовал свойство Value? Я никогда это свойство не использовал (на самом деле использовал, интересно было узнать, что скажет программер на это), поэтому не понимаю смысла от его использования. Ответ программиста, который написал подобный код - я использовал Value, чтобы заткнуть компилятор. просто test2 не позволяет принимать нулевые значения, поэтому следующий код не скомпилируется:
Сегодня читал статью о git и там было написано немного неверное представление о команде checkout. Автор не совсем понимает идеологию git, поэтому допустил несколько досадных ошибок в описании. Статья и автор не имеют значения, потому что я не собираюсь обсуждать его и его работу. Но я решил написать эту статью о git со своей точки зрения и опыта работы.