Рубрика «Программирование» - 942

(От переводчика: этот текст появился в блоге одного из разработчиков языка Go в новогоднюю ночь 2012. Текст ничуть не утратил актуальности за два минувших года; более того, вместо Go в тексте вполне мог бы стоять любой другой немейнстримовый язык. Собственно, именно об этом текст и повествует.)

Одна моя знакомая актриса — назовём её Эсмеральдой — как-то сказала, «Я всегда знала, что стану актрисой. Даже представить не могу, чтобы я была кем-то ещё!» Кто-то парировал: «Какая же тогда из тебя актриса?»

Я вспомнил об этой беседе, прочитав отзыв о языке Go: «Даже представить не могу, как можно программировать на языке без дженериков!» Мне так и хотелось парировать: «Какой же тогда из тебя программист?»

Эта заметка не о дженериках — против них я ничего не имею: возможно, однажды они в Go появятся, а возможно, нет. Эта заметка о воображении, или по крайней мере о том, что программисты обычно выдают за воображение: претензии. Один мой друг отметил, что самый распространённый ныне способ проводить свободное время — сотрясать воздух Сети своими жалобами. Для жалобщиков это умиротворяющая разрядка; но адресатов неиссякающего потока жалоб это весьма угнетает. На меня жаловались столько, что теперь мне самому стала нужна разрядка. Что я для этого делаю? правильно, пишу возмущённый пост в свой блог.

Воображение, как у ЭсмеральдыЧитать полностью »

Вступление

Язык QML для Qt Quick позволяет c легкостью делать многие вещи, особенно что касается анимированных пользовательских интерфейсов. Однако, не всё возможно сделать или не всё подходит под реализацию в QML, в частности:

  • получение доступа к функциональности извне окружения QML/Javascript
  • реализация критических по производительности функций, где требуется нативный код для повышения эффективности
  • большой или сложный не декларативный код, который было бы утомительно реализовывать в JavaScript

Как Вы увидите впоследствии, Qt легко отображает C++ код для QML. В этой статье мы создадим маленькое, но функциональное приложение, делающее это. Пример написан для Qt 5 и использует компоненты Qt Quick, поэтому для запуска примера Вам необходим как минимум Qt 5.1.0.
Читать полностью »

imageДоброго вечера, дорогие Хабровчане. Мы продолжаем изучение Erlang для самых маленьких.

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

В этой главе мы поднимемся на следующую ступень и рассмотрим модули и функции.

Читать полностью »

Больше года прошло с тех пор, как я увлекся программированием под платформу iOS. Наконец-то я нашел свободное время попробовать свои силы на платформе OS X. Если вы давно испытываете интерес к платформе OS X, но никак не соберетесь начать, эта статья для вас! Под катом подробное описание процесса создания приложения — менеджера буфера обмена. Все исходники можно найти на github.com/k06a/Clipshare

Первая программа для OS X своими руками — менеджер буфера обмена
Читать полностью »

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

Чтобы было интереснее, материал представлю в виде простых задачек. Сразу подчеркну, что я не считаю приведенные примеры просчетами языка. Во многом появляется смысл и логика, если вопрос обдумать. Это скорее случаи, когда может отказать интуиция, особенно если голова забита чем-нибудь еще. Есть и пара примеров вида «Ну чего этому компилятору надо, только что то же самое работало!»

И последнее замечание. Это не будут задачи на внимательность типа «Тут я поставил точку с запятой сразу после for — а никто и не заметил». Проблемы не в опечатках. Все необходимые библиотеки можно считать подключенными — не относящийся к описываемой ситуации код я опускал, чтобы не загромождать статью.
Читать полностью »

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

Ставим задачу

Кого ищем? Ищем эффективных бойцов. Известно, что эффективность программистов со схожим опытом может отличаться в 10 раз (Ф. Брукс) или даже в 27 раз (Р. Гласс). Сразу, оговорюсь, эффективность это не только количество трупов врагов реализованных требований к ПО на единицу трудозатрат, но и умение результативно взаимодействовать с окружающими. Это важно, потому что по моим наблюдениям 50% проектных человеко-часов тратится на коммуникации. У нас это называется «синхронизация ментальных моделей».

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

Почему мы не тестируем. Практика проведения технического интервью

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

Иногда бывает так, что разработчики вынуждены работать под Windows (например, привычка или политика компании) но им надо вносить изменения в какой-то переносимый код собирать его под Linux. Можно просто поставить виртуальную машину (например, Oracle Virtual Box) и работать прямо в ней. А можно настроить систему так, чтобы работать в Far в Windows, иметь доступ ко всей файловой системе виртуалки и выполнять все команды прямо из Far. Посмотрим как это настроить на примере Virtual Box, Ubuntu, Far Manager и плагин NetBox.

Читать полностью »

“OSA Rescuer — автоматизированный комплекс содействия МЧС и построения GPS-маршрутов для эвакуации из зон бедствия”.Читать полностью »

image

11-13 октября в Ростове-на-Дону пройдет марафон разработки IT-проектов «47 hours» + конференция и мастер-класс от Microsoft

Вновь на одной площадке соберутся активные представители южного IT-сообщества: разработчики, тимлиды, менеджеры проектов, дизайнеры, иллюстраторы, копирайтеры, специалисты по маркетингу и предприниматели.
Читать полностью »

Вы не программист, если…

На днях, в поисках небольшого апгрейда, заглянул в один компьютерный магазинчик. В процессе разговора с консультантом (30+), он поинтересовался, связанна ли моя профессия с компьютерами, и услышав, что я занимаюсь программированием, сообщил мне:
— Да, я тоже программирую.
Под катом, немного очень субъективных, местами шуточных пунктиков, которые отличают настоящего программиста, от “я-тоже-программирую”.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js