Как уже сообщалось, Университет Иннополис открыл новую для России магистерскую программу по Software Engineering (совместно с партнером, Университетом Карнеги-Меллон), что порождает много вопросов: что это, зачем это надо, почему в партнеры выбран Карнеги-Меллон? В этом топике мы собрали самые горячие вопросы и попросили ответить на них очевидцев – тех, кто проходит обучение по программе в настоящий момент. Есть вопрос, на который мы не осветили? Задавайте в комментариях!
Рубрика «Программирование» - 924
Обучение Software Engineering в России: возможно ли это? нужно ли это?
2013-12-10 в 17:49, admin, рубрики: faq, IT-образование, software engineering, зарплата программиста, Иннополис, казань, мгу, МФТИ, Программирование, управление проектами, метки: faq, IT-образование, software engineering, зарплата программиста, Иннополис, казань, мгу, МФТИ10 декабря — альтернативный день программиста
2013-12-10 в 16:44, admin, рубрики: день программиста, Программирование, метки: день программиста Привет друзья!
Всем, кто имеет отношение к нелегкой, но, без сомнения, прекрасной области человеческой деятельности — программированию — спешу напомнить, что сегодня (10 декабря) — дата альтернативного празднования «Дня программиста»!
Обычно этот праздник официально отмечается в 256-ой день года (12-13 сентября, в зависимости от високосности года).
10 декабря — другая известная дата празднования, связанная с тем, что в этот день родилась первая программистка — Ада Августа Байрон Кинг, графиня Лавлейс (10 декабря 1815 года).

Ада была дочерью великого английского поэта Байрона, создала первую в истории компьютерную программу для аналитической машины Бэббиджа, первой ввела термины «рабочая ячейка», «цикл». Ее фундаментальные труды содержали основные принципы программирования и предсказывали появление современных компьютеров. В её честь назван один из языков программирования — Ада. Кроме того, Ада, судя по всему, была еще и симпатичной девчонкой :)
Исходя из всего этого, предлагаю 10 декабря именовать именно «Днем программистки». Если у вас есть знакомые программистки — не поленитесь поздравить, ведь их и так не много в нашей «бородатой» индустрии!
В комментариях предлагаю вспомнить известных программисток — как реальных, так и персонажей различных фильмов и произведений.
Грант на развитие карьеры Software Engineering
2013-12-10 в 12:51, admin, рубрики: agile, гранты, магистратура, образование, Программирование, управление проектами, метки: гранты, магистратура, образование Для бакалавров последних курсов, специализирующихся на IT, и молодых специалистов есть уникальная возможность получить грант от Университета Иннополис на образование по новой магистерской программе.

Грантом покрывается полная стоимость обучения, перелет, проживание, а так же стипендия на время обучения.
Большая часть образовательной программы будет проходит в г. Питтсбург, США в Carnegie Mellon University. Успешно завершившим программу, будет присуждена международная магистерская степень.
Читать полностью »
Пишем плагин для Maven
2013-12-10 в 12:40, admin, рубрики: development, java, maven, maven 3, plugins, плагины, Программирование, метки: development, java, maven, maven 3, plugins, плагины, ПрограммированиеЕсть у меня на некоторых maven-проектах профиль, с помощью которого производится копирование shared-библиотек с последующим перезапуском сервера Tomcat.
<profile>
<id>deploy-deps</id>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<useSubDirectoryPerScope>true</useSubDirectoryPerScope>
<excludeGroupIds>исключаем некоторые группы, попадающие в war-архив</excludeGroupIds>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>05-stop-tomcat</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-ssh</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>${putty.key}</argument>
<argument>${ssh.user}@${ssh.host}</argument>
<argument>${tomcat.dir.root}/bin/shutdown.sh</argument>
</arguments>
<executable>plink</executable>
</configuration>
</execution>
<execution>
<id>10-clean-shared-jars</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-ssh</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>${putty.key}</argument>
<argument>${ssh.user}@${ssh.host}</argument>
<argument>rm</argument>
<argument>-Rf</argument>
<argument>${tomcat.dir.shared}/*.jar</argument>
</arguments>
<executable>plink</executable>
</configuration>
</execution>
<execution>
<id>15-upload-shared-jars</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-scp</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>${putty.key}</argument>
<argument>${project.build.directory}/dependency/compile/*.jar</argument>
<argument>${ssh.user}@${ssh.host}:${tomcat.lib.shared}/</argument>
</arguments>
<executable>pscp</executable>
</configuration>
</execution>
<execution>
<id>20-start-tomcat</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-ssh</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>"${putty.key}"</argument>
<argument>${ssh.user}@${ssh.host}</argument>
<argument>bin/startup.sh</argument>
</arguments>
<executable>plink</executable>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
- Для всего статичного контента используется некий каталог за пределами webapps. В этот каталог «смотрит» Nginx и отдаёт по web-пути "/static/*"
- Все shared java-библиотеки (редко изменяемые) грузятся в каталог ${catalina.home}/shared, и в Tomcat в файле conf/catalina.properties настроена для этого переменная «shared.loader»
- Для каждого инстанса Tomcat создан свой системный пользователь
- Для доступа по SSH используются ключи и у каждого разработчика он свой
Соответственно, загрузка статичного контента и shared-библиотек это отдельные профили. Всё остальное собирается в war-архив и устанавливается через стандартный web-manager Tomcat-а.
А чтобы не плодить конфигураций, используется PAgent, в который уже и добавленые нужные нам private keys. Они же используются для подключения через Putty
Лежит себе профиль в pom.xml, не кусается вроде бы, даже пашет потихоньку на благо программера, но вот только есть в нём пара «минусов» — занимает много места при развёрнутом pom.xml да ещё и в новые проекты приходится вставлять.
И если от второго минуса можно избавиться написав шаблон в любимая_IDE или свой архетип наваять, то от первого минуса не так-то просто избавить.
Точно ли не так просто? может «обернём» этот профиль в виде плагина для Maven? Сказано, сделано.
Читать полностью »
Codecademy выпустила первое мобильное приложение для обучения программированию
2013-12-10 в 10:49, admin, рубрики: codeacademy, iOS, mobile development, Блог компании «Apps4All», обучение, приложение, ПрограммированиеСегодня ребята из Codecademy сделали свой первый шаг в сфере создания приложений и выпустили вводный курс по программированию, который можно пройти менее чем за час.
Запуск приложения был приурочен к интересному мероприятию Computer Science Education Week, цель которого убедить 10 миллионов американских студентов один час позаниматься программированием (его поддерживает Apple, Facebook, правительство в лице Обамы, известные персоны). Более широкая цель приложения состоит в том, чтобы создать серию уроков, которые можно было бы понемногу проходить на ходу, что прекрасно подходит для занятых людей, желающих приобрести новые навыки.
Страсть к программированию. Глава 7. Будь универсалом
2013-12-09 в 21:23, admin, рубрики: Passionate Programmer, карьера, книги, Программирование, метки: Passionate Programmer, карьера, книги (Примечание от переводчика: Уже были опубликованы переводы нескольких глав замечательной книги Чеда Фаулера «Страсть к программированию». Так как предыдущий перевод уже не обновлялся месяц, попробую продолжить, ибо книжка действительно заслуживает внимания.)
Предыдущая часть:
Как я отказался от $300.000, предложенных мне компанией Microsoft, взамен на полный рабочий день на GitHub’е.
По крайней мере пару десятилетий, менеджеры и владельцы бизнеса считали, что разработка программного обеспечения – по сути конвейерный процесс. Технические требования создаются, архитекторы претворяют эти спецификации в высокоуровневое техническое видение. Дизайнеры заполняют архитектуру детализированной дизайн-документацией, которая передается роботоподобным кодерам, которые держа научно-фантастические новеллы в одной руке, другой в слепую печатают реализацию дизайна. В итоге, Инспектор 12 (прим. пер. — судя по всему отсылка на старую рекламу) получает законченный код, на который она не поставит свой подтверждающий штамп, до тех пор, пока не увидит оригинальные спецификации.
Не удивительно, что менеджеры хотят видеть разработку ПО, как конвейер. Менеджеры понимают, как организовать такое производство. У нас за плечами десятилетия опыта, в построении физических объектов эффективно и правильно. Поэтому перенося опыт с производства, мы должны иметь возможность преобразовать процесс разработки софта в хорошо настроенный механизм, функционирующий аналогично производственным предприятиям.
В так называемой «фабрике софта», сотрудники – специалисты. Они сидят на своих местах на конвейере, скрепляя Java-компоненты вместе, или стачивая острые углы Visual Basic –приложения, на своих станках. Инспектор 12 – тестер по профессии. Компоненты программы двигаются по линии, и она тестирует и ставит на них печать одним и тем же образом каждый день. Разработчики J2EE разрабатывают J2EE приложения. Программисты С++, программируют в С++. Мир чист и разделен на ячейки.
Читать полностью »
Кросс-платформенная разработка на Xamarin
2013-12-09 в 13:54, admin, рубрики: cross-platform, mobile, native, xamarin, Исследования и прогнозы в IT, Программирование, метки: cross-platform, mobile, native, xamarinДобрый вечер, читатели! Сегодня хотелось бы написать о кросс-платформенной разработке в целом. Ведь по сути люди сейчас делят десктоп, сервер и мобильных клиентов и стараются искать кросс-платформенные тулы внутри каждого сектора, не заглядывая за рамки каждого из секторов. Это бывает по различным причинам. Одна из причин — Вася знает как делать десктоп на Java, а Петя — как делать приложеньки под iPhone на Objective-C. И никто даже догадаться не может что есть технологии, объединяющие все платформы воедино.
За катом много текста и статистики :)
Мое выступление на Apps4All Forum. Выступление первое, все ошибки подачи материала уже намотал на ус :)
Тюнинг mooedit
2013-12-09 в 9:22, admin, рубрики: perl, Программирование, разработка, редактор кода, метки: perl, редактор кодаВ работе использую EPIC и недавно начал пробовать Komodo IDE. Но в качестве лёгкого «повседневного» редактора в системе у меня установлен mooedit. Не всё в нём идеально, но некоторые вещи можно подкрутить, о чём и пойдёт речь.
Алгоритм проверки на простоту за O (log N)
2013-12-09 в 8:21, admin, рубрики: алгоритм, Алгоритмы, математика, Программирование, Спортивное программирование, метки: nod, алгоритм, ПрограммированиеПроверка на простоту
Чтобы определить, является ли данное число N простым, безусловно, достаточно написать простой цикл поиска делителей числа N:
bool prime(long long n){
for(long long i=2;i<=sqrt(n);i++)
if(n%i==0)
return false;
return true;
}
Данная функция проверки числа на простоту достаточно эффективна — асимптотика ее работы O (sqrt(N)). Однако, иногда в спортивном программировании нужно уметь проверять число на простоту быстрее.
В некоторых случаях, когда требуется выполнять такую проверку для чисел из некоторого диапазона, то целесообразно воспользоваться алгоритмом Решето Эратосфена.
В данной статье я рассмотрю другой способ выполнять единичные проверки на простоту — тест Ферма.
Читать полностью »
Железо на службе у алгоритма
2013-12-09 в 6:02, admin, рубрики: intel, type safety, Железо, История ИТ, микропроцессоры, Программирование, Процессоры, Эльбрус, метки: intel, type safety, железо, микропроцессоры, Программирование, ЭльбрусБорис Бабаян о прошлом, настоящем и будущем вычислительной техники

Каким представляется развитие вычислительной техники человеку, который уже более полувека занимается разработкой компьютерных технологий?
Мне удалось побеседовать на эту тему с Борисом Арташесовичем Бабаяном, директором по архитектуре компании «Интел».
Борис Бабаян известен как главный архитектор компьютерных вычислительных систем «Эльбрус-1», «Эльбрус-2» и «Эльбрус-3». Некоторые из его идей использованы в архитектуре Transmeta. В настоящее время Борис возглавляет разработку новой микропроцессорной архитектуры в компании «Интел».
Чтобы совсем покончить с формальностями, перечислю звания, степени и должности Бориса: член-корреспондент РАН, доктор технических наук, профессор, заведующий кафедрой «Микропроцессорные технологии» МФТИ, Intel Fellow, лауреат Государственной и Ленинской премий.
Дальнейшее повествование построено от лица Бабаяна. Мои скупые комментарии оформлены в виде врезок либо ссылок на интернет-страницы.


