Напомнило мне один недавний случай. Диалог с одним разработчиком… (вольный пересказ):
Я: Следуй REST. Регистрация нового клиента — POST на /users, редактирование старого — PUT на /users/42
ОН: Да нафига такие сложности, я уже сделал POST, если в базе есть юзер с таким id то это обновление, а если нет, то регистрация нового. Все же просто.
Я: REST уже описан, а твой подход, назовем его «Как сказал Вася», неизвестен никому, даже тебе. Как ты будешь работать с заявками на сервере? Что тебе придется придумывать в «Как сказал Вася» чтобы работать с заявками. Кто это будет документировать?
ОН: Ну в заявках я буду использовать REST!
Я: Ок. Какая из систем проще, та, в которой везде используется REST, или та, в которой где-то используется REST, а где-то «Как сказал Вася»?
link и name — имена функций. forward, J2, A3 и вторая K3 — вроде как константы или какие-то литералы. А чем являются J1, A2 и первая K3? И как их отличить от имен функций? Такие «шероховатости» в языке могут принести столько проблем, что поседеете.
Давно использую. Туннель 6in4 из домашнего роутера в Huricane Electric. Отладочный сервер с несколькими ipv6 адресами с разными JavaEE серверами на разных ip адресах. Miredoo, в офисе и других местах. DynDNS, чтобы не запоминать адреса.
Это не так хорошо, как если бы провайдер выдал мне /64 ipv6 адрес, но очень близко к этому.
items = [
{'name':'a', 'val':4},
{'name':'a', 'val':5},
{'name':'b', 'val':6},
{'name':'a', 'val':7},
{'name':'b', 'val':3}
]
expected = [
{'name':'a', 'val':4},
{'name':'b', 'val':6},
]
result = []
for item in items:
if item['name'] in [r['name'] for r in result]:
continue
result.append(item)
assert expected == result
Мне понравилось. Кратко и прямолинейно! Даже new Thead(...).start, а потом invokeLater в этой статье оправдано (для ясности). Еще бы в конце упомянуть SwingWorker.
Увы, снова обманули.
Вот удобные сокращения к гиту:
alias s='git status'
alias k='gitk --all'
alias gl='git log --graph --decorate --pretty=oneline --abbrev-commit --color -n30'
alias gu='git remote -v update'
Вкратце предлагают на выбор:
— хранить данные в SharedPreferences
— в файлах
— в SQL базе данных (android.database.sqlite)
link и name — имена функций. forward, J2, A3 и вторая K3 — вроде как константы или какие-то литералы. А чем являются J1, A2 и первая K3? И как их отличить от имен функций? Такие «шероховатости» в языке могут принести столько проблем, что поседеете.
Это не так хорошо, как если бы провайдер выдал мне /64 ipv6 адрес, но очень близко к этому.
toMap
создавалLinkedHashMap
, иначе элементы в произвольном порядке возвращаютсяА вот решение на груви:
Взять количество строк, взять случайные номера строк, и выполнить такой запрос:
Профит: простой SQL, и не сложный код.
Вот решение на groovy:
Недостаток этого решения, может ничего не найти, особенно на сильно разряженных таблицах.
Вот удобные сокращения к гиту:
Вот гит: git-scm.com/book/ru
Чё, нормально. Спасибо им.