среда, 5 июня 2013 г.

Рецензия на книгу "Объектно-ориентированный процесс мышления"

Если бы меня спросили, какая книга поможет разобраться в концепциях объектно-ориентированного проектирования, я несомненно бы ответил "Объектно-ориентированный процесс мышления" ("The Object Oriented Thought process").

Среди преимуществ отмечу:
  • Автор пытается не привязывать объяснение концепций к конкретному языку программирования. Он приводит несколько примеров на Java, C# и Objective C.
  • Использование UML-диаграмм классов в качестве иллюстраций и глава, посвященная им.
  • В первой части книги - примерно до 10 главы - примеры кода достаточно простые.
  • Знакомство с несколькими современными концепциями ООП вроде сериализации, сохранности, архитектуры "клиент-сервер" и паттернов проектирования.
  • Автор пытается сразу объяснять новые концепции.

 Недостатки:
  • Слишком много примеров кода в главах о приложениях. Для новичков в Java они слишком сложные, но акцент делается на коде, а не на концепциях.
  • Иногда иллюстрации были лишними.
  • Примеры кода в главе, посвященной XML, не очень четкие; неправильно проставленные отступы.

 Заключение:
Советую эту книгу всем, кто хочет получить хорошие базовые знания концепций ООП. Для людей, которые уже длительное время занимаются объектно-ориентированной разработкой, книга покажется менее интересной.

Иногда Он слушает даже руководителей проектов


Первый взгляд на последние изменения в Gmail

Вкладки! Вкладки! Вкладки!

В десктопной версии нового Gmail самым крупным обновлением являются вкладки - теперь можно сортировать входящую почту по меткам, что позволит добиться более упорядоченного вида.

Android

Новый интерфейс выглядел бы немного громоздким на экране смартфона, поэтому Google слегка адаптировала его под Android, хотя формально вкладки никуда не делись. 

Шутки о разработчиках

Истина где-то рядом. У кого-нибудь есть URL?

Интернет: здесь мужчины и женщины - это обычные люди, а дети - замаскированные агенты ФБР.

Некоторые вещи человек и не должен был знать. Для всего остального есть Гугл.

вторник, 4 июня 2013 г.

10 способов ускорить Wi-Fi

Первые устройства стандарта 801.11ac скоро поступят в продажу, но 802.11n, кажется, останется с нами надолго.

К сожалению, 300 Мбит/с, обещанные n-стандартом, редко оказываются реально достижимыми. Кроме того, данный стандарт является узким местом и создает много проблем во времена широкополосного подключения со скоростью 50/100 Мбит/с (или больше?), потокового 1080p-видео, резервного копирования больших массивов данных и т.д.

Если взять бизнес сферу, даже такие рутинные задачи, как удаленный рабочий стол или сотрудничество в режиме реального времени страдают от плохого Wi-Fi-соединения.

Если вам надоела маленькая скорость Wi-Fi, но вы не собираетесь возвращаться к технологии Ethernet, мы подскажем вам, как усилить слабый сигнал.

Проверьте эко-настройки роутера

Некоторые роутеры настроены на энергосберегающий режим по умолчанию. Зачем? Чтобы сэкономить несколько мВт. Увы, такой добродетельный подход существенно уменьшил пропускную способность. В качестве эксперимента я переключил свой верный роутер Linksys WRT610N на режим пониженного энергопотребления.

Если пропускная способность для вас важнее минимальной экономии энергии, проверьте настройки роутера и найдите параметр "Мощность передачи" или рызличные Eco-режимы. Отключите их. И еще - посмотрите, есть ли на вашем роутере автоматические настройки передачи. Их тоже желательно отключить.

Шутки о разработчиках

Простите, но наше ПО безупречно. Проблема в вас.

Социальная сеть FUBAR - вот куда гики ходят на пиво.

Существует три вида лжи: Ложь, наглая ложь и бенчмарки.

SOA для всех


понедельник, 3 июня 2013 г.

Система отслеживания ошибок Atlassian Jira получит новый пользовательский интерфейс и высокую скорость

Компания Atlassian модернизировала систему отслеживания ошибок Jira новым пользовательским интерфейсом, который, как заверяют в компании, позволит увеличить скорость навигации и упростить рабочий процесс.

Jira 6, которая вышла во вторник, предлагает улучшенную производительность и первый интерфейс, разработанный специально для мобильных клиентов.


Первый релиз Jira состоялся в 2002 году. Система предназначена для отслеживания ошибок во время разработки ПО и позволяет команде разработчиков выявить проблемы в кодовой базе, а затем проследить за их устранением.

Шутки о разработчиках

Perl - единственный язык, программы на котором выглядят одинаково до и после RSA-шифрования.

Когда кто-нибудь говорит “Хочу язык программирования, который будет делать, все что я ему скажу”, дайте этому человеку леденец.

Простите за двойной слеш (Тим Бернерс-Ли на седьмой конференции WWW в Брисбене, 1998 год).

Обычные будни ИТ


пятница, 31 мая 2013 г.

Что-нибудь неизменное

Шутки о разработчиках

Есть три типа людей: те, кто умеет считать и те, кто не умеет.

Последний опрос показал, что 3 из 4 людей составляют 75% населения мира.

Бесконечное число математиков заходит в бар. Первый заказывает пол литра пива, второй - четверть литра, а третий - одну восьмую...
”Не морочьте мне голову”, - говорит бармен и наливает литр на всех.

Google готовится к выпуску конкурента JavaScript - языка Dart версии 1.0

Google готовится к выпуску конкурента JavaScript - языка Dart версии 1.0 и уже тщательно продумала, что войдет в веб-инструментарий Google Web Toolkit (GWT) версии 3.0, который появится на следующий год.

Как заявляет инженер-программист Google Эмили Фортуна, релиз Dart 1.0 ожидается в скором времени. Dart, позиционируемый как язык для структурного веб-программирования, будет нашпигован такими возможностями, как каскадное обращение к методам (для упрощения модификации объектов) и именованные аргументы (для улучшения читабельности). Кроме того, язык поддерживает функциональность JQuery.

Несмотря на то, что встроенную поддержку языка Dart имеет лишь браузер Chrome, он может быть использован и в других браузерах.

"Мы можем компилировать в JavaScript, так что Dart поддерживается любым браузером", - заявила Фортуна на недавней конференции Google I/O в Сан-Франциско.

"У виртуальной машины открытый исходный код. При желании, другим браузерам ничего не помешает ее интегрировать".
Dart использовался в проектах вроде инструмента генерации атласа шрифтов Glyph 3D для разработчиков игр и художников и инструмента управления проектами Blossom.io.

По словам инженеров Google, Google Web Toolkit версии 3.0 для создания веб-приложений должен стать более модульным и быстрым.
"Первым делом мы стремимся удвоить скорость компилятора", - поделился Рэй  Кромвелл на Google I/O.
Монолитный GWT SDK разделят на части, что сделает возможной широкую интеграцию с остальными инструментами. Сгенерированный JavaScript будет приспособлен для современных виртуальных машин на JavaScript.

В GWT 3.0 будет добавлена поддержка Java 7 и Java 8 и всех функций языка Java 7. Внедрение возможностей проекта Lambda в Java 8, ориентированных на программирования для многоядерных процессоров, станет возможным сразу после выпуска Java 8, уверяет Кромвелл.

Плюс ко всему, от версии 3.0 ожидают усовершенствованных инструментов отчетности и профилирования, а также улучшенных возможностей CodeSplitter.

Более того, Google намерена ликвидировать сотню ключевых ошибок в GWT и повысить скорость и надежность модульного тестирования в GWT. В новой версии будет удален устаревший код, как и поддержка Internet Explorer 6 и Internet Explorer 7. 

До выпуска GWT 3.0 Google планирует представить GWT 2.6, который Кромвелл определил как незначительное обновление.

четверг, 30 мая 2013 г.

Уроки по Agile


Шутки о разработчиках

Начало программистской мудрости лежит в понимании разницы между “заставить программу работать” и “написать работающую программу”.

Эй! оно компилируется! Можно отгружать! 

Дайте человеку программу - и вы испортите ему день; научите его программировать - и вы испортите ему жизнь.

Спонтанное проектирование и метафора

Инкрементная разработка является эффективным подходом, а стремление к простому дизайну кажется логичным. Однако, попытки "на лету" дать определение архитектуры - глупы и тщетны. Существует причина, по которой никто не придерживается спонтанного проектирования: оно не работает.

Использование командой метафор (система - это "конвейер") в качестве замены архитектуры кажется еще более нелепым. Исследование университета Карнеги-Меллон показало, что метафоры естественного языка практически не способствуют общению между участниками проекта или разработке архитектуры.

Так или иначе, почти никто не понимает, что такое метафора системы, как ее нужно использовать, как выбрать содержательную метафору или как ее изменить, если вы истолковали ее неправильно (и как об этом узнать) - включая человека, которому принадлежит следующее высказывание:
"Хорошо, я готов признаться публично: я до сих пор не могу понять, что же это за штука такая, эта метафора. Я видел, как она работает (в проекте C3 она сработала великолепно), однако это вовсе не означает, что я знаю, как это сделать, не говоря о том, чтобы объяснить это другим."
 (Мартин Фаулер. "Проектирования больше нет?")
Методы гибкой разработки усовершенствовали процесс и результаты разработки и представили действенные подходы решения многих проблем разработки ПО, но не архитектуры и дизайна.

Новый Wi-Fi: Что нужно знать о стандарте 802.11ac

Первые точки доступа любительского уровня с поддержкой нового Wi-Fi-протокола 802.11ac стали появляться летом прошлого года, а сейчас на рынок выходит высокотехнологичное беспроводное оборудование с поддержкой 802.11ac. Apple готовится внедрить стандарт 802.11ac в свои компьютеры, релиз которых запланирован на это лето.

Почему вокруг 802.11ac столько шумихи? Он сможет привлечь широкий круг пользователей благодаря следующим преимуществам: экономное потребление ресурсов батареи, высокая пропускная способность, повышенная дальность действия сети и стабильность сигнала по сравнению с другими беспроводными устройствами.

Подобные усовершенствования пойдут на пользу бизнесу. Что касается ИТ-сферы, по словам президента консультационной компании по сетевой безопасности Core Competence Лизы Пфайфер, желание реализовать 802.11ac объясняется иными причинами: высочайшая плотность, что означает возможность большего числа одновременных подключений на точку доступа.

Великолепная пропускная способность и широкая полоса частот на канал позволяет использовать 802.11ac для передачи транзитного трафика. Следовательно, пропадет необходимость заменять или модернизировать транзитные сети в зданиях.

Далее идет 802.11ad, также известный как WiGig, который появится через несколько лет. Это совершенно новый стандарт с дополнительным диапазоном 60 ГГц, высокой скоростью передачи данных, но меньшим, чем у 802.11ac диапазоном.

То есть, нужно проводить новые исследования. Я полагаю, что первое развертывание стандарта 802.11ad будет предназначено для магистральных сетей или отдельного высокоскоростного сегмента ЛВС для периферийных устройств. Другими словами, пока рано в деталях обсуждать возможности 802.11ad.

среда, 29 мая 2013 г.

Разработчик Java создал и запустил свободный офисный пакет за 30 дней

Проект под названием Joeffice работает на Windows, Mac OS X и Linux, а также в браузере, как сообщает разработчик Энтони Губард.

В его состав входят: примитивный текстовый процессор, программа для работы с электронными таблицами, инструмент для создания презентаций и редактор баз данных.

Для разработки офисного пакета Губард использовал среду NetBeans и множество открытых библиотек. Благодаря им ему удалось создать программу за 30 дней. Весь процесс он ежедневно документировал на YouTube.

Пока выпустили альфа-версию Joeffice. То есть, не все функции работают корректно, предупредил Губард. Он выпустил проект - доступный на условиях лицензии Apache 2.0 - от имени своей компании Japplis (Амстердам).

Как заявляет разработчик, компании могут изменять и распространять код без необходимости открывать исходники для широкой публики.

Joeffice сможет составить конкуренцию Google Docs, однако никогда не получит расширенных возможностей, как у Microsoft Office, делится автор. Да и с открытыми LibreOffice и OpenOffice.org он состязаться не планирует.

Искусство маскировки вышек сотовой связи

Маскировка вышек сотовой связи в США и других странах превратилась в некий вид искусства. Неприглядные башни прячут в шпилях церквей, флагштоках, бункерах и других крупных сооружениях. Агенство Reuters исследовало, под какие деревья маскируют вышки.

Жокей скачет мимо фальшивого кипариса, в котором спрятана антенна сотовой связи (Аскотский ипподром, Беркшир, Англия). Британские власти планируют облегчить телекоммуникационным компаниям процедуру установки антенн сотовой связи высотой до 6 метров. Кроме того, они намерены улучшить качество сотовой связи в сельских районах и ускорить внедрение 4G.

Урок философии: модели ценообразования


Шутки о разработчиках

Если с первого раза не получилось, назовите это версией 1.0

Сложней всего отлаживать код в котором, по-вашему, нет ошибок.

Программирование сегодня - это гонка между разработчиками, создающими программы с улучшенной защитой от “дурака”, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.

Agile-методики, от которых стоит держаться подальше

Методология Agile-разработки предлагает множество отличных эффективных идей и практик:
  • разбиение проектов на небольшие релизы (Small Releases) для управления рисками и обеспечения быстрой обратной связи;
  • таймбоксинг для ограничения WIP (одновременно выполняемых работ);
  • работающее ПО как критерий успеха;
  • простая оценка и скорость (velocity) для определения производительности команды;
  • сотрудничество с клиентами;
  • постоянная интеграция - и постоянные релизы - для обеспечения стабильной работы кода.
Но существуют другие - менее важные - методы: если им не следовать, с вами и вашим проектом не произойдет ничего плохого. А есть такие, о которых лучше забыть.

 

 Разработка через тестирование (TDD)

Команды, пытающиеся ускорить процесс работы, должны располагать эффективной системой тестирования. Test First Development (разработка по принципу "сначала тест") и разработка через тестирование делают акцент на написание тестов - в конце концов, прежде чем написать код, пишется заведомо неуспешный тест.

Веб-дизайн: Забытое преимущество

В сообществе разработчиков, кажется, царит скрытое неуважение к профессии веб-дизайнера. Программисты воспринимают дизайнеров просто как мастеров Photoshop-а. Кроме того, они считают, что веб-дизайн намного проще программирования. Подобная точка зрения весьма прискорбна.

Написание ПО является командной работой, каждый прилагает усилия к его созданию. Разработчики должны превращать идеи в код, QA-аналитики обязаны поддерживать высокие стандарты качества, а веб-дизайнеры - позаботиться, чтобы ПО было легким в использовании и внешне привлекательным. Если они не будут действовать согласовано, даже лучшие идеи обречены на провал.

вторник, 28 мая 2013 г.

Пользователи Windows 8 игнорируют Metro-приложения и предпочитают традиционное ПО Windows

Согласно данным, обнародованным на этой неделе, большинство обычных и корпоративных пользователей ПК с Windows 8 запускают менее одного Metro-приложения в день. Другими словами, пользователи чаще пользуются привычными десктопными приложениями.

Согласно статистике израильской компании Soluto, предоставляющей возможность управления компьютерами удаленно, только 39% владельцев настольных ПК на базе Windows 8 запускают Metro-приложения чаще раза в день.

Пользователи ноутбуков пользуются подобными приложениями немного чаще - 40% открывает в среднем более одного Metro-приложения в сутки. Даже пользователи сенсорных устройств редко вспоминают о существовании "плиток" - 42% опрошенных запускает более одного приложения в день.  

Выбор программистов: топ-7 инструментов разработки мобильных приложений

Следование концепции "mobile-first" - согласно которой веб-сайты в первую очередь разрабатываются для мобильных устройств - стало отличительной чертой дальновидных разработчиков приложений. Поэтому, неудивительно, что количество инструментов разработки мобильных приложений продолжает расти.

Ведущие компании вроде Intel и Embarcadero Technologies, а также менее известные - например, Appscend - постоянно выпускают технологии для удовлетворения потребностей разработчиков мобильных приложений.

Мы расспросили группу разработчиков, что они думают о последних инструментах для создания мобильных приложений. Вот что получилось:

AppGyver

AppGyver предлагает инструменты для быстрой разработки, включая сервис Prototyper для прототипирования и Steroids для разработки приложений PhoneGap.

Шутки о разработчиках

Искусственный интеллект, как правило, побеждает реальную тупость.

Человеку свойственно ошибаться, а еще больше - винить в этом компьютер.

CAPS LOCK - мешает логиниться с 1980!

Каскадная модель


Twitter купила Ubalo для ускорения работы серверов

Twitter приобрела компанию Ubalo, предоставляющую различные сервисы для ускорения процесса написания программ. Компания Twitter сообщила об этом в четверг. Условия договора пока остаются в тайне.

Ubalo, название которой, по словам ее основателей, означает "подсчет", описывает свой бизнес как способ "упростить и сделать крупномасштабные вычисления доступными для неспециализированной аудитории". Свою главную технологию она называет "pods" (переходные устройства), что может содержать код, данные и любые другие файлы, необходимые для поддержки приложения разработчика.

Продукты компании позволяют более эффективно масштабировать код в многопоточных производительных средах. Когда пользователь запускает переходное устройство, Ubalo берет на себя всю техническую сторону вопроса, как сообщает веб-сайт компании.
"Мы прячем детали компьютеров, сред и обмена сообщениями, так что пользователи могут больше сосредоточиться на написании кода, необходимого для анализа или обработки", - заявляет компания.

Предыдущие проекты компании включают решения, сокращающие время обработки изображений для приложений, загружающих файлы на интернет-хранилище Amazon Simple Storage Service; и решения для извлечения и обработки конкретных данных Статистического бюро США.

Пока не известно, как именно Twitter планирует внедрять разработки Ubalo. Компания не разглашает детали сделки.

понедельник, 27 мая 2013 г.

Шутки о разработчиках

В мире существует лишь 10 типов людей: те, кто разбирается в двоичной системе и те, кто в ней не разбирается.

Компьютеры делают очень быстрые и очень точные ошибки.

Будьте вежливы к ботаникам. Возможно, они станут следующим Биллом Гейтсом!

Вероятность



Наступил следующий момент Гутенберга

Момент Гутенберга изменяет наш способ производства и потребления книг так же радикально, как и первая печатная машина Гутенберга.
Деннис Барон

Почему изобретение печатного станка играет столь важную роль? Чтобы понять это, нужно забыть, как легко можно покупать книги и вспомнить прежние времена.

Во времена, известные как Темные века, книги писали вручную так называемые монахи-переписчики, преданные своему делу. В эпоху, когда чтение и писание были редким феноменом, только небольшое количество светлых умов брались за перо. Следовательно, произведений выходило очень мало.

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

Более того, учитывая, что именно монахи отвечали за изготовление книг, они отдавали предпочтение священным книгам, обходя вниманием книги светского содержания.

В конце концов, существовала пара вариантов, как раздобыть конкретную книгу: или вы отправляетесь за книгой, или книга (или копия) приходит к вам. В любом случае, это было дорогим удовольствием.

Печатный станок Гутенберга "просто" позволил массово выпускать книги, а это привело к снижению цен и ряду других важных последствий:

Доступность

Если раньше сперва нужно было узнать, где находится книга, то с появлением печатного станка проблема упростилась - необходимо было знать о самой книге. Теперь люди могли пойти в библиотеку или заказать себе экземпляр. 

Воспроизводимость
Механический процесс не решил до конца проблему ошибок - в действительности, ошибка в форме влекла за собой обилие ошибочных копий - но сделал возможным постепенные и пошаговые улучшения. Об ошибках сообщали и потом исправляли на форме, улучшая качество будущих печатных изданий.

Разнообразие
Когда создание книг перестало быть делом нескольких избранных людей, их ассортимент не просто расширился - появились книги, противоречащие католическим нормам. Наконец, знания, которые передавались исключительно устно, обрели письменный облик.

Коммуникационный аспект
Кроме того, массовое производство книг обеспечило возможность обмениваться идеями. Прежде, чтобы распространять свои идеи вы бы могли написать книгу, но пока она бы стала популярной, прошли бы столетия.
Благодаря печатному станку о них могла узнать вся Европа, их опровергали другие книги, а еще их можно было прочитать! Прошли десятилетия или века, пока влияние подобного изобретения проявило себя на полную. Менялись не только книги, но и их содержание; менялись знания.

Разумеется, процесс изготовления книг претерпел существенные усовершенствования со времен Гутенберга. Он стал автоматизированным: более легким, быстрым и дешевым... но основной алгоритм остался прежним.

Я считаю, что нам повезло, потому что мы переживаем вторую эпоху Гутенберга и ее последствия уже хорошо видимы. Я имею ввиду оцифровывание книг, их превращение из материального в нечто неосязаемое. И значение революции Гутенберга увеличелось в тысячу раз:
  1. Места, где книги недоступны или запрещены (по политическим или экологическим причинам), могут получать доступ к информации. В Африке мобильные технологии сделали для образования женщин больше, чем годы работы общественных организаций.
  2.  Не нужно больше ждать, чтобы получить эррату (список исправлений): содержание книги меняется в режиме онлайн, так что каждое исправление способствует ее усовершенствованию.
  3. Любой (даже вы) может написать собственную книгу (книги), распространять свои идеи и т.д. Благодаря усилиям специалистов и экспертов, редкие или букинистические книги могут обрести второе дыхание.
  4. Публиковать книги можно сразу после их написания. Нет необходимости тратить кучу времени на этот процесс: написание равно публикации! 
источник

пятница, 24 мая 2013 г.

Курс по Scala от Coursera

Coursera предлагает прекрасный курс по Scala, в котором мне посчастливилось поучаствовать.

Курс длится 7 недель. Каждая неделя состоит с 1,5-часовых лекций и задания, на которое уходит от часа до пяти. Итак, поделюсь личным опытом

Стоило ли записываться на курс? Несомненно. Если вы не являетесь профи в Scala и функциональном программировании, то обязательно получите полезные навыки - в первую очередь глубокое понимание парадигмы функционального программирования.

Я помню, как давным-давно начал изучать объектно-ориентированное программирование и, как все новички, думал, что разбираюсь в нем, если понимаю суть полиморфизма, наследования и инкапсуляции и могу вспомнить названия нескольких шаблонов проектирования.

Прошло немало времени, пока я осознал разницу между хорошими и плохими абстракциями и как на первый взгляд безвредные зависимости могут существенно увеличить программную энтропию в проекте.

Подобным образом, многим может показаться, что функциональное программирование - это функциональные литералы, функции второго порядка, внутренние функции и замкнутые выражения.

Следует отметить, что этот курс делает акцент на важности разумного использования рекурсии в ФП. Прежде я не слишком задумывался о данном аспекте. Рекурсия играет решающую роль в ФП, потому что неизменяемое состояние играет решающую роль в ФП.

Чему еще я научился?
  1. Ключевые термины - четкое различие между применением функции и типом функции.
  2. Левая ассоциация для применения функции и правая - для типа функции.
  3. Передавать функции анонимно - следует лишь изредка использовать оператор def для функций, которые передаются.
  4. Искусство  DRY (“Не повторяйся”). Функции должны быть короткими.
  5. Решающая роль соответствия шаблону, особенно при использовании рекурсии.
  6. Потоки - ленивые списки и потенциал запоминания.

В общем, отличный курс.  

NoSQL

21 вредная тех-привычка: забывать чистить свои устройства

Мы раскрыли проблему грязных тачскринов (особенно актуально в эпоху Windows 8) в пункте №3. Как насчет всего остального?

В вашем хай-тек арсенале все без исключения подвержено воздействию пыли и грязи. Они проникают сквозь каждую щель и трещину, но такие устройства, как настольные компьютеры, ноутбуки и даже принтеры, оснащенные воздухозаборниками для охлаждения, страдают больше всего.


Пыль забивает кулеры, оптические приводы и остальные подвижные части, что может привести к неисправной работе и перегреву, если кулеры перестают нормально функционировать. Пыль в сканерах и принтерах негативно влияет на качество печати.

Совет: Чистить свою технику нетрудно, но очень важно делать это регулярно. Раза или двух в год будет достаточно. Постоянно забываете? Попробуйте чистить свой ПК в то же время, когда меняете фильтр обогревателя или кондиционера. Кроме того, можно поставить напоминание на компьютере.

 источник