Tuesday, March 13, 2007

Lost in translation.

Что бы там ни говорили насчет того, что на родном языке учиться легче, все-таки многие детали при переводе теряются настолько, что на английском если прочитать — будет понятно, а на русском — точно что-то упустишь. И то ли это трудности перевода, то ли невнимательность переводчиков...
Скоро начну смешивать в мыслях русские и английские понятия, особенно если это касается программирования. Больно английские хороши=) И потом, нативные названия дают хорошее интуитивное представление о возможном объекте или действии, даже если не знаешь, чего это такое.
А еще потихоньку проникаюсь истинным духом ООП. Молодец был тот, кто эту парадигму придумал. Просто слов нет, насколько молодец (и большой оригинал местами=)))...

Нитяное.

Читаю про потоки, никак не могу себя заставить согласовывать поток в мужском роде: для меня это она, Thread. То ли потому, что ее поведение не гарантировано после применения большинства методов (ох уж эти фемели...), то ли просто потому, что слово "поток" слишком заезженное (всяк может быть: и поток ввода-вывода, и поток выполнения), хоть по смыслу и подходит.
Можно было бы перевести Thread поромантичнее, как "нить" (да хоть бы и оставили инглишизм, "тред", и никто бы не путался), но поток-то конечно звучит солиднее.
А про себя пусть все равно будет она. Как-то приятнее=)

MalePerson IS-A FemaleThings?

Хорошая штука в Java — перечисления, особенно для хранения констант. Потому что когда пихаешь константы в интерфейс, а потом прилепливаешь к классу, может получиться бред с точки зрения того, что слово "implements" равносильно отношению "is-a":
interface FemaleThings { int MAX = 256; int MIN = -258 }

class MalePerson implements FemaleThings {
void doSth() {
}
}

Примерчик не особо наглядный, но в том же свинговском API такие вещи встречаются очень часто.

Sunday, March 11, 2007

Радость

Уф. Полдня возилась с судоками, в результате прикрутила прелоадер и сделала (алла-алла!!!) границы в таблице. Но какой ценой! Ужас. Нельзя так извращаться (вместо одной таблицы сделала 9, фиктивных), но по-другому у меня не получилось, да и времени заняло гораздо меньше, нежели когда я пыталась разобраться в устройстве JTable.
Вот. Ну, зато теперь красота=)) Осталось, в общем-то всего-ничего: сделать генерацию и доделать алгоритм под решение. Уф. Это с точки зрения алгоритма. А с точки зрения интерфейса еще пахать и пахать. Эх.
Итак, выводы: 1. Средствами JTable границы жирные в блоках сделать можно, но сложно. Смотрела пример, не впечатлило.
2. Можно было бы добавить прозрачную панельку с рисованными линиями сверху над таблицей, используя JLayeredPane. Это у меня тоже не получилось. Таблица из-под низа никак не хотела выглядывать. К тому же стала сомневаться, что если бы я добавила прозрачную панель с границами, работал бы выбор значений в клетках с помощью выпадающего списка.
3. Если время, затраченное на написание несравнимо меньше времени, затраченного на копание в документации, то лучше и не копаться (слишком долго=)). Мдям.

Thursday, March 8, 2007

Fast forward

  • Сегодня знакомилась с перлом. Матка боска, ну и синтаксис, ну и "гибкость", сдуреть можно. Ruby понятнее=)))
  • Позавчера поставила IntelliJIdea — абалденная штука=)))
  • В универе грузят по полной. Мы будем учить VHDL.
  • Судоку потиху продвигаются. Сегодня искала ошибки и пыталась сделать так, чтобы моя солв еще и генерировала какую-нибудь заполненную сетку. Не получилось. Все из-за того, что неправильно работает мой брутфорс. Т.е. работает, но не делает шаг назад. Буду думать.
  • Еще про судоку. Интересным оказалось сведение алгоритма поиска решения к раскраске графа, вершины которого -- пустые клетки, и 2 вершины соединены ребром, если находятся в одном ряду или столбце или блоке 3х3. В связи с этим окунулась в книжки по графам. С ума сойти, сколько же там всякой теории и интересных теорем. А потому подумалось: есть ли специальное ПО для работы с графами? Или, еще лучше, класс, реализующий граф на Java/С++? Причем желательно было бы все-таки чтобы не любительский подход был к этому. Т.е. чтобы класс входил в SDK. Также надо будет поискать ПО для отрисовки графов (это я кажется видела у Алены С++).
  • Надо что-то думать с сертификацией. Т.е. начинать нормально готовиться. Учитывая, что в универе грузят, это сложно. Но возможно.
  •