Posts Tagged ‘Программизм’

Вдогонку про идею

Та проблема в IntelliJ IDEA, о которой я писал месяц назад, оказывается была пофикшена практически через день. JetBrains, малаццы.

Луч любви в сторону VS2010

Ситуация такая. Есть сишарповый проект (интересный проект, если вы понимаете о чём я). В файловой системе в исходниках этого проекта есть пустая папка. В csproj-файле её нету. Задача — добавить эту папку в проект.

В контекстном меню пункт Add -> Existing item не позволяет добавлять папки, только файлы. Пункт Add -> New folder, естественно, не даёт создать папку с нужным именем, потому что она уже есть.

НЕНАВИСТЬ.

MsTest: CollectionAssert и HashSet

Печально, но дотнетовский System.Collections.Generic.HashSet<T> не имплементит System.Collections.ICollection. Из-за этого МС-овский же Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert.AreEquivalent() безбожно не компилирутеся.

var hashSet = new HashSet();
CollectionAssert.AreEquivalent(new string[]{}, hashSet);

Error 125 The best overloaded method match for 'Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert.AreEquivalent(System.Collections.ICollection, System.Collections.ICollection)' has some invalid arguments.

Вот такая хрень компилируется, но, что неудивительно, падает при попытке привести хэшсет к ICollection. Это ещё печальнее:

var hashSet = new HashSet();
CollectionAssert.AreEquivalent(new string[]{}, (ICollection)hashSet);

System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.HashSet`1[System.String]' to type 'System.Collections.ICollection'.
Вот такая ерунда работает ок, но выглядит как костыль (собственно, им и является):

var hashSet = new HashSet();
CollectionAssert.AreEquivalent(new string[]{}, new List<string>(hashSet));

Приходится писать свой хелпер.

Мир несовершенен, друзья. Любите его, чините его, и он будет лучше.

GCJ 2009 R1 Advancers

По традиции публикую неофициальный список беларусов, участвующих в очередном раунде Google Code Jam. Полужирным выделены товарищи, прошедшие в R2. Читаем дальше

GCJ 2009 Qual Advancers

Сделал списочек участников из Беларуси, которые участвовали в квале. Всего 65 человек, 61 из которых проходит в Online Round 1.

Читаем дальше

Google Code Jam 2009 Qualification Round

Только что принял участие в сабже. Результаты будут завтра. Задачки несложные. Кто хочет — можно присоединяться, потому что регистрация открыта будет ещё почти сутки.

UPD: Прошёл квал, решив все задачки. Первый раунд — на следующих выходных.

Товарищ [info]Антон подсказал остроумное решение первой задачи (Alien Language). Вкратце напомню её суть.

Дан набор слов языка и несколько шаблонов вида типа такого: abc(xy)d(gf). Буквы в скобках означают, что на месте этих скобок может быть любая из этих букв. То есть, шаблону выше удовлетворяют следующие слова: abcxdg, abcydg, abcxdf и abcydf. Необходимо найти для каждого из заданных шаблонов, сколько слов из словаря им соответствуют.

Задача при заданных там ограничениях решается в лоб. Самый крутой способ (который я узнал от Антона) — это преобразовать шаблон в регексп, заменив круглые скобки на квадратные :) Тогда задача решается буквально в пару строчек на руби путем проверки каждого слова словаря на соотвествие этому регекспу. Любуйтесь короче:

  l, d, n = gets.split(' ').map { |w| w.to_i }
  dictionary = Array.new(d) { |i| gets.chomp }
 
  1.upto(n) do |test_no|
    pattern = gets.chomp.gsub('(', '[').gsub(')', ']')
    regex = Regexp.new(pattern)
    count = dictionary.select { |word| regex =~ word }.size
    puts "Case ##{test_no}: #{count}"
  end

Duck Typing

Читая унылый хабр, наткнулся на забавный перевод термина Duck Typing — утипизация. А чё, остроумно.

Duck Typing

Тупой вопрос про буфер обмена

Можно ли в винде, например, скопать в буфер обмена пустую стоку? Чтобы при вставке вместо выделенного текста именно она невозбранно и вставлялась? А в этих ваших линуксах и прочих системах?

Если да, то как? Если нет, то почему?

Как выучить SQL

Самый простой, эффективный и быстрый метод выучить язык SQL — тренироваться. Скажу откровенно: можно много умных книжек, статей и документации прочитать по SQL, но без практики знания наверняка будут малоприменимыми. Так вот, самый лучший способ тренироваться — решать упражнения по SQL на сайте sql-ex.ru. Задачи там начинаются с очень простых и постепенно усложняются. Я, честно говоря, до последней пока не добрался — завис на 137-м упражнении.

Да, еще немаловажен тот факт, что на сайте есть рейтинг участников и система выдачи сертификатов участникам, решившим определенное количество задач. Я считаю, что качество сертификата c sql-ex позволяет быть уверенным в глубоком понимании языка SQL его обладателем. Кроме того, обладание сертификатом «All requirements» поднимает ЧСВ на несколько пунктов.

Командная строка в виндовс

Как известно, в расово-верной ОС Виндовс довольно затруднительно использовать командную строку с той же эффективностью, как это можно было бы сделать во всяких линуксах. Однако, существуют костыли, позволяющие эту ситуацию подпереть.

Читаем дальше

« Older Entries
мастер по Ремонту холодильников и Ремонт холодильников цены солнечногорск .