← All posts tagged dev

Darion
random quote dev
> This is not an abstract, academic concern to me. I'm starting a new open source web project with the goal of making the code as freely and easily runnable to the world as possible. Despite the serious problems with PHP, I was forced to consider it. If you want to produce free-as-in-whatever code that runs on virtually every server in the world with zero friction or configuration hassles, PHP is damn near your only option. If that doesn't scare you, then check your pulse, because you might be dead.
Sad but true
Darion
quote dev "Написать код в срок и в рамках бюджета — это не всё. Лучше превысить сроки в 5 раз, бюджет в 10 раз, но сделать то, чем реально воспользуются."
Darion
dev work Наверное это ненормально, когда у тебя в репозитории у пары десятков коммитов подряд сообщение начинается c "refs #<номер одно и того же тикета>". Но я пока не придумал, как сделать лучше.
Darion
dev PHP Научи пхпешника писать foreach($dict as $k => $v), так он везде $k => $v писать будет и потом сиди да разбирайся, какой смысл в данном конкретном случае имеет $v.
Darion
dev Неудобно, когда нет хороших инструментов для быстрого прототипирования в нужной области. Возня с излишними техническими подробностями убивает вдохновение.
Darion
dev Когда долбоюзеры начинают напрямую указывать, что должно быть в программе и как, программа превращается в северного пушного зверя.
Darion
бред dev А все-таки в том, что в русской и английской раскладке символы 'c' располагаются на одной и той же клавише, есть большая подстава.
Darion
Rails edu dev Читаю railstutorial.org. На каком-то моменте парочка тестов перестали проходить. Я с чего-то тогда решил, что это связано с тем, что в какой-то момент там были тестовые данные, потом их не стало, это просто недоработка авторов туториала, и на самом деле все в порядке.
Но, если не обращаешь внимания на пару непроходящих тестов — потом пропускаешь и другие. Сейчас, закончив очередную главу, перед тем как делать коммит — разобрался с приличным количеством провалившихся тестов, теперь все проходит. Все 64 теста. Приятно.
Урок на будущее: не пропускать ни одного "фэйла".
Darion
dev work Адекватное планирование задач по времени возможно только тогда, когда ты способен разбить задачу на ясные для себя шаги. Когда в задаче слишком много неясных моментов, необходимости экспериментирования, поиска информации, инструментов, решений, и прочего — стоит признаться себе и руководству (если таковое имеется), что разброс возможного времени для корректного решения задачи будет велик.
Недостаточный опыт с желанием делать все "правильно" дает много экспериментов, поиска информации и решений. Необходимо обучаться на ходу. Тяжело оценивать время и составлять планы. Это создает дискомфортную обстановку в контексте коммерческой разработки. Может встать выбор между конфликтом с начальством и конфликтом с проектом. Чаще выбирается второе, так как в первом случае обычно работать дальше становится совсем невозможно.
Сильна зависимость от инструментов. Устоявшийся в сообществе набор инструментов и методик позволяет быстрее влиться в этот контекст, перенять опыт других и быстрее начать работать. Разработать качественный web-проект проще и быстрее на Ruby on Rails, чем на голом PHP. Даже если начать изучать то и другое с нуля.
Darion
edu dev links Статья "На чем учиться программированию", обсуждающая, с чего следует начинать введение в программирование для школьников: b-al-u.livejournal.com
В ней есть ссылка на другую статью, которая обсуждает реалистичность форсированного обучения программированию и то, что вообще программисту знать нужно: b-al-u.livejournal.com
В этой статье, помимо прочих, была ссылка на статью Джоэла Спольски об отуплении курсов по программированию в университетах (ссылка давалась в контесте SICP). Тоже с удовольствем прочитал: local.joelonsoftware.com
Darion
dev work В субботу я читал небольшой ликбез по системам контроля версий на работе. Сегодня, в понедельник, один коллега расстроил меня тем, что совершенно ничего не понял про ветки. Добавил заново (а не через svn copy) целых шесть (!) копий проекта в репозиторий, из них 4 по совершенно неясной логике. Эта ситуация ввела меня в ступор.
Потом, вечером, после работы, когда получали зарплату, у кассы зашел разговор с другим парнем. И он меня порадовал. Тем, что у нас готова новая функциональность и своим отношением к работе. Видно, что, не имея еще достаточно хорошего опыта, человек старается делать правильней, не вестись на быстрые методы и задумываться над тем, каково с этим будет работать в будущем. Он в самом деле поднял мне настроение.
А потом, когда шел домой — подумал, что же это такое, когда то, что один человек старается что-то делать правильно, уже поднимает настроение и возникает желание делать дело дальше и возникает надежда, что хоть что-то у нас выйдет, что когда-нибудь мы будем довольны результатом. Я буду доволен результатом. Ведь повод для недовольства находится почти каждый день.
И какое же счастье, должно быть, работать в команде, где все стараются делать работу хорошо. Во всяком случае, первое время.
Darion
dev work SVN liquibase Далее по поводу ошибок валидации контрольных сумм на другом сервере.
Сравнил я два файла диффом — свой и с сервера. Идентичны.
Посмотрел версии джавы. На сервере GNU libgcj (если так верно ее называть), у меня — OpenJDK. Разные реализации джавы неверно каким-то образом по разному считают контрольные суммы? о.О
Возможно, это как-то связано с реализацией liquibase.
OpenJDK и виндовая джава тут работают одинаково.
Нужно пробовать ставить OpenJDK, пожалуй.
Darion
dev work SVN liquibase На своей машине сливаю образ базы данных — все запускается, делаю тоже самое на одном из серверов — ошибки проверки контрольной суммы сыплются на ченжлоги. У меня стоит версия svn 1.6.9, на сервере — 1.5.1 (ну так Дебиан). Теперь нужно выяснять, как это так разные версии svn-клиента загружают файлы (или фрагменты файлов) с разными контрольными суммами. Это что значит, svn в очередной раз обновится и тогда у меня тоже ошибки полезут о.О
Есть вариант, что конфигурация разная у клиентов. Где-то трансляция переводов строки, например, происходит из одного типа в другой.
Ну ладно, я то как-нибудь с этим разберусь. А человек, которому нужно просто пунктик меню выбрать в тортойзе и запустить батничек — глаза выпучит на 222 ошибки проверки контрольной суммы.
Darion
org-mode dev Emacs Python gae Начал писать веб-интерфейс для отображения документов org-mode, рассчитанный на todo-листы. Не знаю, продолжу ли. Не решил, где лучше хранить org-файлы или откуда лучше брать. Весьма желательно версирование и слияние.
Darion
бред dev work Windows Мысль после прочтения мануала по сборке Gish для Linux и Windows и возникших ассоциаций с рабочими, наболевшими проблемами:
Все-таки Windows — система прежде всего для долбоюзеров. А то что эти долбоюзеры иногда начинают писать программы — это отдельный вопрос.
Darion
цитата dev "Все это сделало системы баз данных доступными широкому кругу пользователей. К сожалению, кажущаяся простота данных систем способствовала тому, что пользователи стали самостоятельно создавать базы данных и приложения, не имея достаточных знаний о методах проектирование эффективно работающих систем. Поэтому, один раз возникнув, "кризис программного обеспечения", или, как его еще иначе называют, "депрессия программного обеспечения", продолжается и поныне."
Коннолли, Бегг, Страчан — Базы данных: проектирование, реализация и сопровождение.
Darion
dev Случается такая болезнь у кодописателя не очень опытного, без багажа фундаментальных знаний и хороших приятелей из отрасли, но при этом с пока еще не угасшим интересом и стремлением к "правильности". Падок такой кодописатель на всяческие красивенькие библиотечки и фреймворки. При этом ему часто тяжело объяснить другому, неинтересующемуся кодописателю, зачем нужна конкретная библиотека A и чем она лучше B. И постоянно хочется перейти с одного фреймворка на другой, и переписать все к черту. Но четко обосновать, зачем перейти и почему переписать, почему именно сейчас, и какая от этого будет выгода — получается не всегда.
Darion
Java dev work ? liquibase Жуйк, я не знаю Java, но мне нужно опробовать liquibase. В экспериментах с mysql все прошло нормально, но когда понадобилось сгенерировать ченджлог для удаленной базы на MSSQL Server — возникли проблемы. Вот что выходит:

alex@alex-laptop:~/tmp/liquibase$ ~/bin/liquibase/liquibase --driver=com.microsoft.jdbc.sqlserver.SQLServerDriver --classpath="/home/alex/tmp/sqljdbc_2.0/enu/sqljdbc.jar" --changeLogFile=tdb.changelog.xml --url="jdbc:sqlserver://192.168.1.3/tdb" --username=usr --password=pass generateChangeLog

Migration Failed: Cannot find database driver: com.microsoft.jdbc.sqlserver.SQLServerDriver

Вот paste.org ссылка на текст в нормальном виде. То что расположено выше, жуйк, как обычно, изуродует (и какой он после этого "гиковский" ресурс?).

Полез в архив sqljdbc.jar — путь к классу верный. Решил что класс находит, но каким-то образом не распознает в нем database driver — нет, при указании несуществующего пути к классу — ошибка та же.
Что можно еще сделать, чтобы решить этот вопрос?