Да, скажем, в цикле. Метод Read при этом возвращает фактическое количество байт, которые он прочитал и записал в массив. Когда вернет 0, это будет означать, что файл кончился.
logiciel: мейлы и аудиофайлы - тоже в какой-то мере эрзац-багтрекер. Складывать их в кучку по дням-неделям-месяцам и выдавать время от времени статистику, как растет число обращений. Вполне сочетается с предложенным выше методом 3-х гвоздей (хорошая затея). Наконец, можно регулярно ездить клиенту по мозгам на тему того, что большой серьезный проект без багтрекера смотрится как-то несолидно :)
Тормоза только при первом выполнении запроса? При последующих как? Если тормозит только первый раз, то, вероятно, в этот момент SQL Server к Oracle подключение налаживает.
nuhena: по поводу ссылки - я бы начал с того же hh.ru, а так же местных (для вас) форумов и досок объявлений, где можно отыскать подходящие вакансии. Далеко не все работодатели соглашаются на удаленку, поэтому начинать поиски стоит вблизи предполагаемого места проживания.
Что до "устаревает/набирает обороты", то это все тоже от лукавого, как по мне. Есть, так сказать, устоявшиеся вещи: C++, Java, C# и даже PHP (не к ночи помянут), они будут актуальны если не всегда, то очень и очень долго. Есть всякие "набирающие обороты" новички вроде того же Go, которые уже завтра могут также резко обороты сбавить.
Одним словом, эти рейтинги, конечно, имеет смысл принимать во внимание, но переоценивать их показательность не стоит.
Значит, разные переводы одного и того же термина. Вот поэтому я предпочитаю статьи в оригинале читать: на подобных хитрых терминах переводчики частенько начинают что-то невнятное городить ))
Александр Шаповал: тонкость в том, что заказчик может по договору не захотеть. Ему ж тогда налоги платить придется и все такое прочее. Но предложить такую схему стоит.
Не вижу смысла делать коммит, если не делалось изменений в БД. В общем же случае сначала создаем транзакцию, потом выполняем-закрываем команды, потом делаем коммит или роллбэк (смотря что нужно). Еще можно использовать класс TransactionScope: https://msdn.microsoft.com/ru-ru/library/system.tr... По ссылке есть пример.
Как по мне, спокойнее всего будет провернуть весь обмен лично и очно. Т.е. встретиться с заказчиком, показать, шаблон, дальше он платит, вы ему сливаете на флешку свои поделки, все довольны. Ну и пусть свидетели рядом. В идеале вообще оформляется договор, акт сдачи и прочая бюрократия - с этим можно будет и в суд пойти при желании.
Помню, работал с одним таким товарищем "через знакомых" и с "репутацией". Один небольшой проектик прокатил успешно, а со вторым он просто пропал, научив тем самым, что кому попало доверять-таки не стоит. Урок обошелся в 18 недополученных килорублей :)
1) Пока не снимал (на черный день держу), но суть проста: снял, обменял. Не слишком выгодно, зато предельно просто.
2) См. момент про 3-НДФЛ: раз в год заполняю декларацию, подаю, плачу налог. Налоговые даже в нашей провинции уже повернулись к "клиенту" лицом: все покажут, объяснят.
Если я правильно понимаю задачу, то создание модала можно завернуть в какую-нибудь функцию, которая бы возвращала Promise (Deferred). Внутри функции модалу повесить обработчик на событие hide, в котором возвращаемому промису делать resolve. Метод $.ajax тоже возвращает Deferred; итого имеем два деферреда, которых можно дождаться с помощью $.when. Будет что-то типа такого:
stream.Read(bytes1, 0, bytes1.Length);
stream.Read(bytes2, 0, bytes2.Length);
Как-то так. При каждом чтении текущая позиция стрима смещается на считанное количество байт.