Перейти к содержанию
Посмотреть в приложении

A better way to browse. Learn more.

Форум Академгородка, Новосибирск

A full-screen app on your home screen with push notifications, badges and more.

Чтобы установить это приложение на iOS и iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
Чтобы установить это приложение на Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ksoft

Пользователь
  • Зарегистрирован

  • Посещение

Весь контент ksoft

  1. QUOTE (Nemo @ Nov 20 2007, 19:25)QUOTE (ksoft @ Nov 20 2007, 14:29) С точки зрения кандидата я тут недостатков не вижу, лично мне такой вариант нравился. И всё же недостатки есть и с точки зрения кандидата: оплата обязывает (ну по крайней мере меня). И если я, как кандидат, претендую на должности в нескольких компаниях одновременно, то я не стану брать на себя (по сути) обязательство что-то написать. Выбор из нескольких - разве ж это плохая для соискателя ситуация? А если Вам, как кондидату, без собеседования предложили интересную работу full time сразу в нескольких компаниях? Найдутся люди, что и порадуются таким "проблемам". Если серьезно - да, есть сложная для соискателя ситуация, когда он на текущей работе занят так плотно, что не может физически выделить время на такую задачу. Но это общая проблема когда ищут работу. Собеседования тоже отнимают массу времени. Конечно лучше, когда работа ищет Вас, т.е. метод подбора, о котором я писал в первои своем посте, но сточки зрения кандидата. А вообще все это субъективно. У меня лично была описываемая Вами ситуация, когда одновременно одна фирма на финальном этапе отбора предложила разработать софт, трудоемкость которого оценивалась неделями, а другая продолжала цепочку собеседований. Там речь шла о позиции, где задачки "по теме" трудно подобрать. Положительные решения обе конторы приняли практичеки одновременно. Материальная сторона на старте - почти одинакова. Действительно были напряженные размышления и колебания. В результате пошел в первую, там уже после успешной тестовой разработки было понятней, что от меня хотят, и что я могу предложить. Ну и потом там уже прошла первая оплата "без кидалова", т.е. мы уже как бы и сотрудничаем. Сказать что второй раз выбрал бы также не могу, снова бы думал и колебался. Ваша ситуация с Microsoft действительно другая, характерная для крупных контор и серьезных специалистов. Человека берут не на вакансию, а на фирму, и видимо надолго. Тут свои методы отбора.
  2. QUOTE (Maaxee @ Nov 20 2007, 14:52)QUOTE Я тут не очень понимаю о резюме, желаемой сумме и "не выплачивать". Ну как, сумму пусть нанимаеный скажет сам и бесплатно. После этого наниматель говорит либо делай либо свободен. Я это так вижу. Теперь понял. Вариант договоренности.
  3. QUOTE (Maaxee @ Nov 20 2007, 12:15)Можно как угодно это обозвать, главное чтобы человек знал что он получит денежку за решение в том кол-ве в котором хочет. Тогда это не отпугнёт профессионала. Вы же прочитаете его резюме и будете бесплатно знать желаемую сумму за конкретную задачу. Даже сама желаемая сумма уже о многом скажет. Можно же её и не выплачивать - если сильно маленькая или наоборот здоровая. Способ тестирования через оплачиваемое решение относительно объемной задачи по теме - нормальный для кандидата на позицию программиста - разработчика. Я тут не очень понимаю о резюме, желаемой сумме и "не выплачивать". Я сталкивался с оплатой по договоренности соразмерной с предполагаемой зарплатой по искомой должности. С точки зрения кандидата я тут недостатков не вижу, лично мне такой вариант нравился. А вот с точки зрения нанимателя недостатки есть: - не всех интересных кандидатов, как показывает обсуждение, такой вариант устраивает - затраты на подготовку (и оценку трудоемкости) таких задач - общие проблемы оценки кандидата по заочно выполненной работе - "форсаж" Последнее означает, что тестовое задание может быть выполненно в срок и с нужным качеством за счет форсированных усилий кандидата. А его нормальная, рабочая производительность, существенно ниже и остается неизвестной. С учетом всего этого такой вариант отбора является не 100% -м прежде всего для нанимателя. И оставшиеся вопросы придется снимать другими способами.
  4. QUOTE (Перерожденец @ Nov 20 2007, 01:14) Бывают две крайности. 1. Специалист увлекающийся, но так же быстро остывающий, на всё имеющий свой мнение, но не считающийся ни с чьим другим, за всё берущийся и ничего не заканчивающий, непрерывно самоутверждающийся, ничего при этом не достигая, вечно что-то делающий, но на выходе никогда не получающий то, что нужно, незаслуженно недооцененный с нулевой дисциплиной. Хакер семи пядей в самомнении, все кругом ламеры. 2. Специалист с 9:00 до 18:00, с перерывом на обед. Ничем не увлекающийся, и потому всегда остывший, своего мнения не имеющий, решений не принимающий, ответственности избегающий, учиться не умеющий, моя хата с краю. И что он тут вообще делает, зачем пришел? А работать-то надо где-то.... И бывает, когда начальный энтузиазм со временем стремится к варианту 2 примерно по http://www.webkomora.com.ua/ru/articles/ap...zitki/1227.html Понять характеристику кандидата с этой точки зрения задачки вряд ли помогут.
  5. QUOTE (Maaxee @ Nov 19 2007, 20:13) Единственный вариант привлечь профессионалов с помощью толстой задачи - это сделать предоплату за решение, имеенно столько сколько захочет этот самый профессионал. Зачем пред? Просто оплату. Нормальный способ тестирования. Не 100%-ый, но кто мешает дополнить его другими тестами?
  6. QUOTE (sh_vi @ Nov 19 2007, 15:24)И тем не менее - если кому любопытно как и мне: в этом и других новосибирских форумах мне ответили 23 человека. В среднем (после обработки "полярных" ответов) получилось так: 18 000 для начинающего и 40 000 для опытного. Замечательно! Вроде сплошной треп и стеб, а после обработки у Вас получились вполне правдоподобные (по крайней мере для ИТ сферы) числа. Хоть на мой взляд слегка завышенные, но именно слегка и именно на мой взгляд. Выходит при хорошей методике обработки такие опросы вполе информативны.
  7. QUOTE (Sleepyhead @ Nov 19 2007, 19:51)Я согласен, что лучше всего с конкретной работой справится человек, эту работу уже (успешно) выполнявший ранее. Дык где ж таких хороших взять?! Как хотя на них выйти? Это же надо целый штат шпиёнов иметь. :-) Переманивать - ну... я пока не могу сказать, что я лично готов сманивать народ, даже не по причине "дорого" (для конкретного проекта можно и шикануть - нанять по-настоящему классного спеца! ;-) , как-то это... гм... в общем, пока есть возможность обходится без подобных игрисч, делать так неохота. Для принципиально новаторских работ есть сложности. Для проектов, которыми мне доводилось заниматься, всегда удавалось найти несколько аналогов и соотвестственно фирмы, эти аналоги выпускавшие. Не всегда это в тех же административных границах и даже (текущий проект) на том же континенте. Т.е., теоретически, при отсутствии ограничений на ресурсы, такой вариант есть. Другое дело экономическая целесообразность. На самом деле и при практически неограниченных ресурсах этот критерий не применяют по субъективным причинам. Слишком хорошие вакансии менеджмент среднего звена старается заполнять по родственным и корефановским критериям, пусть и в ущерб конторе. А верхним боссам не всегда удается противостоять такой тенденции. Однако даже если обсуждаемый критерий - недостижимый идеал, стремление приблизиться к нему при отборе приносит пользу. QUOTE Но, согласитесь, что если нет возможности выйти на подобного кандидата сразу, по причине ли отсутствия информации или из-за собственной бедности, то вариант с задачками для кандидатов тем более актуален - чтобы по крайней мере не иметь дела с заведомо непригодными к требуемой работе/проекту людьми. Не соглашусь. Есть вероятность отбраковать полезного кандидата с иным по сравнению с Вашим образом мышления. Но и спорить не буду. Понятно, если результат достигается разными способами, необязательно только один из них верный.
  8. Есть простой и надежный критерий подбора кадров в области разработки ПО. Если есть работа, и нужен специалист для ее выполнения, нужно брать человека, который уже выпонял успешно подобные работы и выполняет подобную работу сейчас. Т.е., по другому, переманивать специалиста с аналогичной должности в известной и успешной фирме. Существенный недостаток у этого критерия один - как правило дорого. А от бедности и начинаются всякие выверты, ну на эту тему тоже сказка есть, Пушкина. Есть проблема, когда работа в принципе не имеет аналогов (что редко) или когда наниматель нечетко представляет, что же ему надо (это чаще).
  9. QUOTE (ro_man @ Nov 6 2007, 02:02) Я спросил - кто нибудь знает о, скажем так, платных мастер классах по программированию в новосибирске? Чтобы уровень был высоким, чтобы там выступали гуру. Это одно. QUOTE Есть желание отправить несколько архитекторов за счет конторы поучиться чему-нибудь стоящему, поскольку застаиваются люди, вращаясь в своей узкой среде (пусть даже они в этой своей среде пишут очень неплохие системы для таких контор как Дойче телеком или Фольксваген) Это другое. Стартовый вопрос выглядит неконкретным, соответственно и ответы. Все же кого Вы хотите учить - ПМ, архитекторов, программистов? И чему? Необычная для меня практика, когда контора выбирает курсы. У нас чаще специалист находит интересующий его курс. Еще - нужны только знания, или + документ? Если второе (а для специалистов это значимо), то большинство систем сертификации предлагают обязательный или рекомендательный учебный план. И рекомендованных обучающих партнеров. А если проблема QUOTE поскольку застаиваются люди, вращаясь в своей узкой среде то лучше нет конференций с хорошей географией и фуршетами, что Вам уже советовали.
  10. Скажите, а просто копирование одного из исходных файлов в режиме Direct stream copy не приводит у Вас к увеличению объема копии? Еще: все исходные файлы созданы одним кодеком?
  11. QUOTE (Vagabundo @ Oct 29 2007, 23:59) А Intel Visual Fortran очень рекомендую. Ставишь его поверх Visual Studio 2005, ляпота получается. Всё раскрашено, дебаггер работает... А вот без VS 2005 или VS.NET он может работь? Если да, как это выглядит? А то на intel.com в требованиях наличие VS прописано. Правда указано, что для определенных версий и лицензий оно опционально. И сам этот компилятор платный, еще и VS. Иногда этот фактор тоже приходится учитывать.
  12. QUOTE (Безбилетница @ Oct 30 2007, 07:00)пытаюсь склеить 12 avi-файлов. их общий размер 186 мб, на выходе получается 900 мб.. когда сохраняю, нажимаю direct stream copy.. никакого результата - все равно большой файл получается. как их склеить-то, чтоб размер был 186 мб???? Да вроде бы так, как Вы и делаете. Открыть первый avi, выполнить нужное число раз Append AVI Segment. Установить в Video Direct stream copy. Выполнить Save As AVI. Вы действительно так делаете? Попробуйте склеивать не все 12 сразу, а по одному - такой же эффект? У меня VirtualDub 1.7.0
  13. QUOTE (AiSee @ Oct 16 2007, 15:10)QUOTE Ну так, если это реальная задача, преобразуйте исходную таблицу в таблицу также с двумя полями, где ID неуникально, а второе поле (столбец) содержит один объект из списка OBJ. Т.е. из одной записи оригинальной таблицы получится N записей вида ID объект где N - длина списка OBJ оригинальной записи. ARR то же преобразовать в одностолбцовую таблицу. На полученной конструкции SQL - запросом Ваши задачи легко решаются. Идею я понял, но не знаю зачем ARR делать таблицей, и как тогда сформировать запрос, чтобы получить все ID, для которых все элементы OBJ лежат так же и в ARR? Если предлагаемая модификация допустима, то запрос можно получить переводом условия задачи в SQL Например (для первой задачи) select DISTINCT A.id FROM Table1 A where not exists ( select * from Table1 D where (D.id=A.id) and not exists (select * from TableARR B where B.name = D.name) ) Table1- модифицированная исходная таблица, TableARR - таблица, содержащая ARR
  14. QUOTE (AiSee @ Oct 16 2007, 14:04)QUOTE (ksoft @ Oct 16 2007, 13:13) ID случаем не уникальны? Естественно уникальны! =) Ну так, если это реальная задача, преобразуйте исходную таблицу в таблицу также с двумя полями, где ID неуникально, а второе поле (столбец) содержит один объект из списка OBJ. Т.е. из одной записи оригинальной таблицы получится N записей вида ID объект где N - длина списка OBJ оригинальной записи. ARR то же преобразовать в одностолбцовую таблицу. На полученной конструкции SQL - запросом Ваши задачи легко решаются.
  15. QUOTE (AiSee @ Oct 15 2007, 17:32)Исходные данные: Таблица с 2-мя полями - ID и OBJ: ID - целочисленное значение; OBJ - список объектов (строка, содержащая имена, через запятую); Запрос: ARR - массив, содержащий список объектов (строка, содержащая имена, через запятую); Нужно получить: ID строк, поля OBJ которых содержат только те объекты, что есть в ARR; ID строк, поля OBJ которых содержат объекты из ARR и ещё X объектов, не лежащих в ARR. Вопрос, как оптимально решить эту задачу? ID случаем не уникальны?
  16. QUOTE (andaps @ Oct 10 2007, 09:54) Инвоке - хорошо) Наверное, это действительно то, что Вы хотели, т.е. обход запрета лезть к элементам GUI из другого потока. Понятно, что второй поток при этом "подвязан" к событиям GUI, не двинется дальше, пока Invoke не отработает. Если по логике так и надо - все нормально. Но все равно взгляните: Форма с двумя button'ами. Код using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace MT_test { public partial class Form1 : Form { public delegate void MethodInvoker(); private int t1, t2; private TextBox tb1 = null; System.Threading.Thread myThread; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { button1.Enabled = false; myThread = new System.Threading.Thread(new System.Threading.ThreadStart(SomeCallbackFromSecondThread)); myThread.Start(); button1.Enabled = true; button2_Click(this,e); } private void SomeCallbackFromSecondThread() { System.Threading.Thread.Sleep(1000); t1 = Environment.TickCount; Invoke(new MethodInvoker(fa)); t2 = Environment.TickCount; Invoke(new MethodInvoker(fb)); } public void fa() { tb1 = new TextBox(); tb1.Left = 100; tb1.Top = 100; tb1.Size = new Size(40, 20); this.Controls.Add(tb1); } public void fb() { int t3 = t2 - t1; tb1.Text = t3.ToString(); } private void button2_Click(object sender, EventArgs e) { button2.Enabled = false; System.Threading.Thread.Sleep(10000); //myThread.Join(); button2.Enabled = true; } } } Посмотрите, как держит myThread длинный обработчик button2_Click. А если раскомментировать Join - клинч. А вот здесь namespace MT_test2 { public partial class Form1 : Form { public delegate void MethodInvoker(); private int t1, t2; private TextBox tb1 = null; AutoResetEvent autoEvent; System.Threading.Thread myThread; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { button1.Enabled = false; autoEvent = new AutoResetEvent(false); myThread = new System.Threading.Thread(new System.Threading.ThreadStart(SomeCallbackFromSecondThread)); myThread.Start(); timer1.Enabled = true; button1.Enabled = true; button2_Click(this, e); } private void button2_Click(object sender, EventArgs e) { button2.Enabled = false; System.Threading.Thread.Sleep(10000); myThread.Join(); button2.Enabled = true; } private void SomeCallbackFromSecondThread() { System.Threading.Thread.Sleep(1000); t1 = Environment.TickCount; autoEvent.Set(); System.Threading.Thread.Sleep(10); t2 = Environment.TickCount; } private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; if (autoEvent.WaitOne(0, true)) { tb1 = new TextBox(); tb1.Left = 100; tb1.Top = 100; tb1.Size = new Size(40, 20); this.Controls.Add(tb1); int t3 = t2 - t1; tb1.Text = t3.ToString(); } else { timer1.Enabled = true; } } } } myThread свободен при той же тяжелой GUI-ситуации. Join в button2_Click тому свидетель.
  17. QUOTE (andaps @ Oct 9 2007, 09:37)Ситуация такая: Есть форма. Вместе с ней запускается ещё один thread, который чо-то периодически делает и в результате его действий на форме должны появляться соответствующие элементы управления. Я создал делегат, событие которого происходит в этом threadе и вызывается соотв. функция, добавляющая элемент управления на форму. Так вот, при возникновении события выскакивает резонное исключение: "Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке." Вопрос: как можно это обойти? Одним потоком я не обойдусь.. Надо разделить логику так, что бы создание дочерних для формы GUI - элементов выполнялось в том же потоке, в котором создается сама форма. Т.е. в данном случае в главном. Когда это сделано, дальше вопрос синхронизации потоков. Для этих целей помотрите, например, класс EventWaitHandle.
  18. В чем проявляется это "не пашет"? Я в представленном коде вообще не увидел прямого или косвенного вызова void Matrix() в которой вызывается timeGetTime Поясните пример.
  19. Извините, соврал. Как раз и проявляются в указанном режиме.
  20. QUOTE (Nemo @ Oct 1 2007, 19:02)Метод хороший, но с включиным антиалиасингом могут появиться артефакты вокруг букв. Хотя попробовать стоит. Я пробовал с QUOTE g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; и шрифтом Arial 24 - все чисто. Да и по теории вроде не должно. Но полностью гарантировать конечно не могу. При рендеренге необяснимые (для меня ) эффекты и без перекрытий случаются.
  21. QUOTE (bliss @ Sep 28 2007, 16:16)Как пользуясь DrawString() методом класса Graphics нарисовать строчку чтобы у нее первые буквы были одного цвета а последние 5 другого? Если меняется только цвет, а шрифт одинаковый, можно просто перекрыть первые буквы. Примерно так: Bitmap bm = new Bitmap("am.bmp"); Graphics g = Graphics.FromImage(bm); Font drawFont = new Font("Arial", 16); SolidBrush drawBrush = new SolidBrush(Color.Green); SolidBrush drawBrush2 = new SolidBrush(Color.Blue); g.Clear(Color.White); g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; g.DrawString("AA12345", drawFont, drawBrush, 150.0f, 150.0f); g.DrawString("AA", drawFont, drawBrush2, 150.0f, 150.0f); bm.Save("bm.bmp");
  22. QUOTE (Maaxee @ Oct 1 2007, 10:18)Да речь идёт о VC++. Опции такой не видел. Сейчас буду смотреть как сервис пак1 повлияет на проблему с хашниками. Посмотрите вот что: В IDE Tools->Options->Projects and Solutions->Build and Run Что там у Вас стоит в окошке "On Run, when projects are out of date:" ? Можно предположить, что там "Never build". При этом значении - описываемая Вами ситуация. "Always build" - билдится автоматически, видимо Вы этого хотите. "Prompt to build" - то окошко, о котором я говорил. Как понимаю это default - значение , я им пользуюсь, меня устраивает. Так как это настройки IDE, раз поменял - сохраняется для все проектов до нового изменения или спец. настроек проекта.
  23. QUOTE (Maaxee @ Sep 28 2007, 16:47) 2) Кто нибудь знает как победить незамечание компилятором изменившегося хашника (*.h файла). Меняю файл - компилирую, чёто жуёт, потом: готово. На деле изменения не привнесены в исполняемый файл. Делаю ребилд олл - всё нормально. PS Intellisense уже вырубил переименовкой файла feacp.dll Если предположить, что речь о VC++, добавьте хашник к проекту, если он еще не в проекте. Обычно VS 2005 предупреждает "project out of date" с предложением ребилда. Но у этого окошка есть опция - "больше не показывать". Вот если Вы отказались от ребилда и прочекили эту опцию - получится как раз описываемая Вами ситуация.
  24. QUOTE (_123_ @ Sep 26 2007, 14:58)Ну как минимум совместимость со старыми версиями должна остаться - это основной принцип Директа. Для MDX это точно не так, подверсии 9-ки отличаются. Если цель - добиться выполнения старых программ, может просто подгрузить те версии библиотек DirectX, с которыми эти проги работали?
  25. QUOTE (Перерожденец @ Sep 22 2007, 16:18)По моим наблюдениям, оборудование, произведенное в соц странах (Польша, Болгария, ГДР), Меры и ИЗОТ-ы и им подобные, было значительно надежнее, чем советское. Сравните Videoton и "фрязинский дисплей". Первый вообще был чудо. Надежный, безотказный - и ничего ему не делалось. С "Мерой" примерно так же дела обстояли, насколько я помню. Конкретно по измерительному комплексу "Мера-60" свидетельствую, что там стоял советский процессор M2. У нас в комнате две стояло - "Мера-60" и "Мера-1300". Во второй тоже отечественный проц. Немногим ранее пришлось плотно подружиться с микроЭВМ "Электроника Д3-28". Вот ее кассетный магнитофон нервы вымотал больше, чем фотосчитки и перфораторы до, и ГМД и ЖД после. Эта, действительно настольная , машина комплектовалась казанскими и фрязинскими терминалами. По сравнению с казанскими фрязинские существенно выигрывали по дизайну. А в целом, сам принцип "персональности" проявлялся тогда в основном в размерах. По цене даже Д3-28 была далеко не персональной. А что касается "машины для одного", так их и до того было не мало. С чем лично пришлось работать - "Наири" разных моделей, киевские Мир-1 и Мир-2 (о них надо будет отдельно поговорить), совсем маленькая не неймановская "Проминь-2" - все предназначались для работы в монопольном режиме, на одного. Но по размерам они (кроме "Проминь") близки старшим клонам (типа СМ-4 ) PDP-11. Неприятная новизна "Меры" для меня была в полном отсутсвии инженерного пульта. Кажется он был всегда и сохранялся у СМ линии 1-2, и линии 3-4. А тут - нет. Как отлаживаться? Как вообще работать? В ПЗУ "Меры" была зашита возможность лезь в память с терминала, но эта возможность казалось жалкой пародией на ИП.

Аккаунт

Навигация

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.