смещение от окон до *отклоняет платформу программирования

Почему так сложно? Я думаю, что использование системного API может привести к тому же результату:

UIImage *largeImage;
CGFloat ratio = 0.4; // you want to get a new image that is 40% the size of large image.
UIImage *newImage = [UIImage imageWithCGImage:largeImage.CGImage
                                        scale:1/ratio
                                  orientation:largeImage.imageOrientation];
// notice the second argument, it is 1/ratio, not ratio.

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

7
задан ConcernedOfTunbridgeWells 2 July 2009 в 08:33
поделиться

8 ответов

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

Основными дистрибутивами рабочего стола являются Ubuntu и Fedora. Обе системы являются совместимыми, но несколько различаются по архитектуре пользовательского пространства. Инструменты для среды рабочего стола и конфигурация по умолчанию для безопасности системы работают в Ubuntu несколько иначе, чем в большинстве других разновидностей Linux или Unix, но это не имеет большого отношения к разработке. С точки зрения пользователя любой из них был бы хорошим началом.

С точки зрения разработчика, все современные разновидности Unix и Linux очень похожи и имеют, по сути, одну и ту же цепочку инструментов разработчика. Если вы хотите узнать о системе с точки зрения программиста, вам нечего выбирать.

Большинство программ Unix может быть выполнено достаточно эффективно с помощью редактора программиста, такого как vim или emacs, оба из которых работают в текстовом режиме и работают с окнами. Эти редакторы очень мощные и имеют довольно причудливые пользовательские интерфейсы - пользовательские интерфейсы являются обычными, но вносят значительный вклад в мощь инструментов. Если вам неудобно пользоваться этими инструментами, в этой публикации обсуждаются несколько других редакторов, которые предлагают пользователю возможности ближе к обычным инструментам Windows.

Есть несколько IDE, таких как Eclipse , которые могут быть более интересны тем, кто уходит с Windows / Visual Studio.

Некоторые публикации в Stackoverflow, в которых обсуждаются ресурсы linux / unix:

Если у вас есть время и вы хотите сделать настоящий тур по основам Linux From Scratch - это учебное пособие, в котором выполняется сборка установки Linux вручную. Это довольно хороший способ углубленного изучения.

Для программирования: познакомьтесь с C / unix от K&R и некоторых ресурсов, упомянутых в вопросах, указанных выше. Эквивалентом Петцольда, Просиза и Рихтера в мире Unix являются работы Ричарда Стивенса Advanced Programming in the Unix Environment и Unix Network Programming vol. 1 и 2.

Изучение одного из динамических языков, таких как Perl или Python, если вы еще не знакомы с ними, также может оказаться полезным. В качестве бонуса вы можете получить хорошие порты Windows для обоих вышеперечисленных из Activestate , что означает, что эти навыки полезны на обеих платформах.

Если вы занимаетесь C ++, обратите внимание на QT. Это, пожалуй, лучший кроссплатформенный инструментарий графического интерфейса на рынке, который (опять же) обладает преимуществом набора навыков и цепочки инструментов, которые можно перенести обратно в Windows. Есть также несколько хороших книг по этой теме, и (в качестве бонуса) она также хорошо работает с Python.

Наконец, Cygwin является слой эмуляции unix, работающий в Windows и создающий практически unix-подобную среду. С архитектурной точки зрения Cygwin представляет собой порт glibc и crt (базовые библиотеки цепочки инструментов GNU) в качестве адаптера поверх Win32. Этот уровень эмуляции позволяет легко переносить приложения unix / linux на Cygwin. Платформа поставляется с довольно полным набором программного обеспечения - по сути, это полный дистрибутив Linux, размещенный на ядре Windows. Это позволяет вам работать в Windows в стиле unix без необходимости поддерживать отдельные установки операционной системы. Если вы не хотите запускать виртуальные машины, многократную загрузку или несколько компьютеров, это может быть одним из способов перехода на unix.

Cygwin - это уровень эмуляции unix, работающий в Windows и создающий среду, в основном похожую на unix. С архитектурной точки зрения Cygwin представляет собой порт glibc и crt (базовые библиотеки цепочки инструментов GNU) в качестве адаптера поверх Win32. Этот уровень эмуляции позволяет легко переносить приложения unix / linux на Cygwin. Платформа поставляется с довольно полным набором программного обеспечения - по сути, это полный дистрибутив Linux, размещенный на ядре Windows. Это позволяет вам работать в Windows в стиле unix без необходимости поддерживать отдельные установки операционной системы. Если вы не хотите запускать виртуальные машины, многократную загрузку или несколько компьютеров, это может быть одним из способов перехода на unix.

Cygwin - это уровень эмуляции unix, работающий в Windows и создающий среду, в основном похожую на unix. С архитектурной точки зрения Cygwin представляет собой порт glibc и crt (базовые библиотеки цепочки инструментов GNU) в качестве адаптера поверх Win32. Этот уровень эмуляции позволяет легко переносить приложения unix / linux на Cygwin. Платформа поставляется с довольно полным набором программного обеспечения - по сути, это полный дистрибутив Linux, размещенный на ядре Windows. Это позволяет вам работать в Windows в стиле unix без необходимости поддерживать отдельные установки операционной системы. Если вы не хотите запускать виртуальные машины, многократную загрузку или несколько компьютеров, это может быть одним из способов перехода на unix.

Cygwin - это порт glibc и crt (базовые библиотеки цепочки инструментов GNU) в качестве адаптера поверх Win32. Этот уровень эмуляции позволяет легко переносить приложения unix / linux на Cygwin. Платформа поставляется с довольно полным набором программного обеспечения - по сути, это полный дистрибутив Linux, размещенный на ядре Windows. Это позволяет вам работать в Windows в стиле unix без необходимости поддерживать отдельные установки операционной системы. Если вы не хотите запускать виртуальные машины, многократную загрузку или несколько компьютеров, это может быть одним из способов перехода на unix.

Cygwin - это порт glibc и crt (базовые библиотеки цепочки инструментов GNU) в качестве адаптера поверх Win32. Этот уровень эмуляции позволяет легко переносить приложения unix / linux на Cygwin. Платформа поставляется с довольно полным набором программного обеспечения - по сути, это полный дистрибутив Linux, размещенный на ядре Windows. Это позволяет вам работать в Windows в стиле unix без необходимости поддерживать отдельные установки операционной системы. Если вы не хотите запускать виртуальные машины, многократную загрузку или несколько компьютеров, это может быть одним из способов перехода на unix.

Это позволяет вам работать в Windows в стиле unix без необходимости поддерживать отдельные установки операционной системы. Если вы не хотите запускать виртуальные машины, многократную загрузку или несколько компьютеров, это может быть одним из способов перехода на unix.

Это позволяет вам работать в Windows в стиле unix без необходимости поддерживать отдельные установки операционной системы. Если вы не хотите запускать виртуальные машины, многократную загрузку или несколько компьютеров, это может быть одним из способов перехода на unix.

9
ответ дан 6 December 2019 в 23:12
поделиться

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

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

1
ответ дан 6 December 2019 в 23:12
поделиться

Я думаю, это также зависит от того, какие языки программирования вам удобны.

Если вы работали с C # в прошлом, вы могли бы изучить использование этих знаний, запустив Mono, или, возможно, взглянуть на использование Java (что синтаксически очень похоже). В любом случае Linux будет хорош.

Я лично рекомендую вам взглянуть на Mac OS X. Это ОС на основе UNIX BSD, но с действительно приятным пользовательским интерфейсом поверх. Мне кажется, что это лучшее из мира Windows и Unix.

Я делаю всю свою разработку под Unix на нем, развертывая его на серверах Ubuntu. Если вы действительно посмотрите на Mac, обязательно обратите внимание на проект MacPorts , в котором собрано большое количество программного обеспечения unix / linux с открытым исходным кодом, что делает установку инструментов программирования невероятно простой.

1
ответ дан 6 December 2019 в 23:12
поделиться

Ubuntu кажется очень удобной для пользователя и содержит много конкретной информации на форумах и т. д. Так что с точки зрения поддержки вы будете охвачены.

Я испытал переход от Windows к ubuntu как очень выполнимый, вещи, которые вы можете делать графически в Windows, могут быть выполнены точно так же в ubuntu (возможно, с некоторыми исключениями) и даже больше. Человек, разбирающийся в компьютерах, не должен иметь никаких проблем.

Однако очень помогает, если вы знакомы с основными командами оболочки (они понадобятся вам как программисту!). Некоторые из них такие же, как в Windows, но особенно ls (dir) иногда заставляет меня ломать голову над тем, «что это была за команда снова», и наоборот, когда я снова в Windows. Найдите время, чтобы попробовать их. (например: pwd, ls, mv, rm, ps, kill)

Наконец, при установке программ часто простая команда «sudo apt-get install X» делает всю работу за вас, даже более удобная для пользователя, чем установщик Windows исполняемые файлы, которые я нахожу.

Изменить: вы можете попробовать проигрыватель VMware и попробовать несколько дистрибутивов Linux, чтобы поиграть, прежде чем устанавливать двойную загрузку.

1
ответ дан 6 December 2019 в 23:12
поделиться

Приобретите macbook pro. OSX - это самая плавная разновидность unix, и ноутбук должен дать вам необходимый толчок.

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

0
ответ дан 6 December 2019 в 23:12
поделиться

Подойдет любая современная версия Unix (или Linux), которую вы можете запустить на своей машине.

Вот те, которые я бы рассмотрел:

  • Ubuntu. Как отмечали другие, это часто считается самым простым в использовании. Однако некоторые части не являются "стандартными" Unix. Например, сценарии запуска не используют init . В основном это хорошо, но если вы пытаетесь изучить Unix, возможно, это не то, что вам нужно.
  • Fedora. Передовая кромка, но с грубыми краями.
  • Slackware. Возможно, самый Unix-подобный дистрибутив Linux (некоторые сказали бы, устаревший!).
  • Одна из * BSD: FreeBSD, OpenBSD, NetBSD. Другой подход к некоторым вещам, чем у Linux.
  • Solaris. Это «правильный» Unix. Кажется скудным по сравнению с Linux, но стоит поиграть, чтобы увидеть, что «стандартно».

На самом деле, я бы подумал о запуске хотя бы пары из них, большинство из которых нормально работает как виртуальная машина. Одна из хороших и плохих сторон Unix заключается в том, что стандартизация - это скорее философия , чем многие детали. Нет ни Visual Studio, ни C # (я имею в виду отсутствие канонического языка высокого уровня; я знаю о Mono).

0
ответ дан 6 December 2019 в 23:12
поделиться

Попробуйте Kubuntu в качестве дистрибутива и Kdevelop и Qt для начала программирования, все это очень цивилизованно.

Кейт - хороший текстовый редактор в стиле блокнота, если вы хотите пойти по этому пути, но я не Я не понимаю, зачем вам использовать Vi или Emacs, если не считать причудливой привлекательности использования чего-то действительно загадочного.

-1
ответ дан 6 December 2019 в 23:12
поделиться

Отличные ответы. Несколько комментариев:

Практически все дистрибутивы поддерживают LiveCD, чтобы вы могли попробовать перед установкой. люди, упомянутые VMWare и VirtualBox, также отмечают, что установщик Ubuntu WUBI позволяет устанавливать Linux под Windows без повторного разбиения на разделы; очень хорошо; Я использовал его, когда впервые переключился на свою 64-битную систему, так как не был уверен, насколько хороша поддержка драйверов. Однако Ubuntu 9.04 отлично работает в 64-й версии. Кроме того, поскольку Ubuntu настолько популярен, что существует много версий, Kubuntu использует KDE вместо Gnome, Mint и Xubuntu имеют меньший вес.

Ожидайте, что некоторое время они будут работать бок о бок при переходе с Windows. Cygwin имеет несколько хороших загружаемых руководств для людей, которые привыкают к bash, и основную информацию о том, как работает * nix, предназначенную для пользователей Windows. Есть масса полезных сайтов; форумы сообщества Ubuntu содержат огромное количество информации, как для начинающих, так и для продвинутых.

Чтобы привыкнуть к разработке под Linux, ознакомьтесь с проектом документации Linux. Помимо KDevelop, есть Anjuta, Eclipse и многие другие. Некоторые из них легкие, некоторые тяжелые.

Одна вещь, которая может облегчить переход, - это использование программного обеспечения, работающего в обеих операционных системах. Firefox, Thunderbird, OpenOffice, Subversion и сотни, если не тысячи других, отлично работают как в Linux, так и в Windows. И с минимальными усилиями вы можете использовать одни и те же папки для настроек приложений и данных для многих из них. Firefox и Thunderbird могут легко использовать одни и те же папки / файлы в разделе NTFS. Делает двойную загрузку намного проще. Инструкции можно найти на сайте сообщества Ubuntu и в других местах.

Обратите внимание, что некоторые программы для Linux не работают. • Совместимость с NTFS; в Linux храните рабочие папки Subversion на собственном разделе.

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

После того, как вы освоитесь с Linux, разветвляйтесь и попробуйте приложения и инструменты, отличные от Windowsy. Иногда лучше другое. Многие люди используют Emacs и Vim по уважительным причинам.

0
ответ дан 6 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: