Как стать автором
Обновить

Солянка

Время на прочтение3 мин
Количество просмотров3.3K
За последнее время скопилось несколько различных мыслей. Надеюсь, какие-то из них покажутся интересными.
Итак, в солянке:

1. Java: что такое ThreadLocal и InheritableThreadLocal
2. Palm Pre: личные впечатления
3. Android: как развернуть сервер на телефоне
4. Интерфейсы: концепция страницы «про нас»
5. Книжки: впечатления от Pragmatic Thinking and Learning: Refactor Your Wetware



1. Java: что такое ThreadLocal и InheritableThreadLocal


Cтатические переменные в Java — глобальны. Все, за исключением одной: ThreadLocal. ThreadLocal — это контейнер, в который можно положить значение, специфическое для текущей нити.
Например, пусть у нас есть статическая переменная Global.threadLocal. В нити 1 скажем: "Global.threadLocal.set("Thread1")". В нити 2 попросим: "Global.threadLocal.get()". И нам вернётся значение по умолчанию, а не «Thread1».
InheritableThreadLocal расширяет концепцию. Он сохраняет значения, установленные в нити, из которой стартовала текущая. Если бы нить 2 была бы создана из нити 1, то Global.inheritableThreadLocal.get() в нити 2, вернуло бы значение из нити 1.

Бонус: если надо построить дерево нитей (кто кого создал), то можно перегрузить функцию childValue() класса InheritableThreadLocal. Она вызывается в точности в момент создания новой нити.

2. Palm Pre: личные впечатления


Palm PreНе так давно мне удалось порабоать с Palm Pre. Palm Pre — это новый телефон от Palm. iPhone killer. На самом деле, телефон оказался очень неплохим. Во-первых, добротно сделаная операционная система: очень приятый интерфейс, особенно радует грамотно реализованый мултитач. Во-вторых, отличный набор тулзов для разработчика. Для тех, кто хочет глубоко интегрироваться с системой (на уровне OS) предоставляется SDK и набор хедеров. Для разработчиков обычных аппов — неплохой набор тулзов и эмулятор. Приложения представляют собой довольно интересный гибрид веб-приложений и нативных методов. Платформа сделана очень developer-friendly.
Говорят, что все в Palm очень гордятся продуктом. С моей точки зрения, есть чем гордится.

3. Android: как развернуть сервер на телефоне


На Android, оказывается, можно развернуть сервер. Просто на раз-два.
Там отлично поддерживается ServerSocket. То есть, можно создать нить вот с чем-нибудь таким:
while ( isRunning )
{
  // Ждём нового клиента
  final Socket socket = serverSocket.accept();
        
  // Есть клиент! Всё ли в порядке?
  if ( socket != null && socket.isConnected() )
  {
    // Обрабатываем клинтский сокет
  }
}


* This source code was highlighted with Source Code Highlighter.


Для того, чтобы это заработало на локальной машинке, надо включить форвадинг портов. Для этого, надо сказать adb forward tcp:12345 tcp:54321, где 12345 — порт, на котором висит серверный сокет на телефоне, а 54321 — порт локальной машинки.
Удивительно, что всё просто работает из коробки и на эмуляторе, и на настоящих дейвайсах.

Пожалуй, стоит лишь предупредить разработчиков об аккуротном закрытие сокетов, Socket::isClosed() не всегда адекватно выражает состояние соединения.

4. Интерфейсы: концепция страницы «про нас»


Вот такая идея: на странице «про нас» поместить общую фотографию всех разработчиков. Обводишь мышкой лицо разработчика, а слева появляется информация о том, чем человек занимался. Ну и, может, форма отправки сообщения. Что-то такое:
About Us

5. Книжки: впечатления от Pragmatic Thinking and Learning: Refactor Your Wetware


Основная идея книжки: те, кто занимается умственным трудом должны развивать не только «software» мозга, но и «hardware» («wetware», в случае человеков). Постоянно учиться, менять сферы деятельности, запоминать новую информацию, не лениться быть любопытным. Эти активности помогут мозгу не прекращать создавать новые нейронные связи и менять существующие.
Более того, автор продвигает интересный тезис: развите мозга может не прекращаться в определённом возрасте. То есть, при желании, с возрастом можно не растерять остроту мышления и способность учиться новому. Напротив, можно развить мозг так, что он будет эффективно усваивть и обрабатывать информацию.
Очень рекомендую: Pragmatic Thinking and Learning: Refactor Your Wetware.

Надеюсь, в моей солянке оказалось достаточно копчёностей, и читатель получил от неё удовольствие.
Теги:
Хабы:
Всего голосов 18: ↑16 и ↓2+14
Комментарии29

Публикации

Ближайшие события