• Линзы, дроны, стедикам: расширяем возможности Nokia Lumia
    0
    … беспроводная автомобильная зарядка CR-200 ...

    Вот только когда? Когда, наконец, она поступит в продажу?

  • Мобильные подписки, AdWords, приложение Вконтакте и фишинг
    +36
    Не секрет, что очень много пользователей вводят название сайта, на который хотят попасть, в поисковой строке

    А также не секрет, что один «самый популярный браузер» будто специально форсит такое поведение. Начинаешь вбивать известный домен, он тут же предлагает тебе его автокомплитом, но вместо нормального URL http://example.com суёт «популярный результат поиска example.com», лишь бы прогнать через себя побольше трафика. Лично меня очень часто напрягает такая схема.
  • Критическая уязвимость у смартфонов на базе Exynos
    0
    Патчик можно смотреть на GitHub, не полторы строки, конечно, но около того :)
  • AndroidAnnotations — упрощаем и укорачиваем код без вреда для здоровья проекта (I часть)
    0
    Синтетические примеры — это всегда хорошо и красиво. Самый главный вопрос, работает ли это где-либо вне Activity или Fragment? Простейший пример: «паттерн» ViewHolder для вьюшек элементов списка?

    class ViewHolder {
       private final View title;
       private final View subTitle;
    
       public ViewHolder(Context context, View view) {
           title = view.findViewById(R.id.some_id);
           subTitle = view.findViewById(R.id.some_other_id);
       }
    
       public void setData(SomeData data) {
           doSomething();
       }
    }
    


    Код работы с вью и потоками в Activity часто уходит во всевозможные Helper-ы, ViewHolder-ы и прочие Action-ы, я правильно понимаю, что в этом случае аннотации нам не помогут?
  • В 10:00 смотри онлайн трансляцию Windows 8 Summit прямо здесь
    +7
    Default city? Хоть бы часовой пояс из вежливости указали.
  • Пример реализации Stencil буфера с помощью CUDA
    +2
    Я правильно понимаю, что мы получим две совершенно одинаковые картинки?
  • Улучшенный 9-patch редактор
    0
    Ух ты! Буквально 10 минут назад имел беседу с дизайнерами по поводу 9-patch, а сейчас захожу на хабр и вижу такую замечательную тулзу. Спасибо!
  • Демо Nokia Maps 3D (WebGL)
    +3
    Несколько лет назад о таком можно было только мечтать, а теперь вот оно — прямо в браузере. Главное, чтобы не забросили и продолжили наполнять «контентом» — нужно больше городов!
  • Объекты Java
    +3
    Гораздо более внятное исследование, а не гадание на кофейной гуще. Интересно.

    P.S.: байтики привычнее смотреть в HEX.
  • Хабрахабр не торт. Хабрахабр сыр. 
    0
    И как же часто у вас на работе отдельная ветка выделяется под отдельную фичу, а потом мержится в стабильную релизную ветку, чтоб ни дай бог не навредить рабочему коду и чтоб не оказалось так, что в HEAD у нас лежит нерабочий (или даже некомпилируемый!) проект?

    Пожалуй, всё же уточню, что вопрос риторический, ибо я кое-что знаю о работе тов. barker :)

    Проблема здесь не в том, что в централизованных VCS этого сделать нельзя, проблема в том, что их архитектура не располагает к подобному стилю разработки и, зачастую, делает его чересчур сложным и трудоёмким, в отличие от DVCS.
  • 2ГИС запускает бета-версию сервиса пробок
    +23
    Так, погодите-ка, за мной будете! Я тут за iOS (iPad) версией уже с 6 утра стою!
  • Изучай Хаскель ради добра! Моноиды
    +1
    Именно отсутствие интереса к теме послужило причиной тому, что мой первый топик в песочницу оказался последним. Были еще идеи топиков по хаскелю, но увы.
  • Анализ реальных паролей пользователей и улучшенный полный перебор
    +2
    Простите за занудство, но я уже не первый раз в топиках подобного содержания встречаю утверждения вроде «как видим, биграммы совсем не случайны».

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

    Далее, каждая случайная величина (возвращаясь к нашим баран биграммам, случайной величиной будет являться дискретная случайная величина со значениями в виде всевозможных биграмм) обладает своим законом распределения! И то, что очень и очень многие тут называют «случайно» на самом деле приравнивают по смыслу к «равновероятно». Закон распределения может быть каким угодно, вообще любым, и величина от этого случайной быть не перестанет. Закон распределения (для дискретной величины) есть множество значений величины и соответствующие им вероятности. Равномерный закон распределения — это очень частный случай! Давайте будем грамотнее.

    P.S.: пока писал комментарий, увидел, что тоже относится и к комментарию выше от товарища alexey_uzhva. Конечно, сгенерированные пароли случайны, однако закон распределения символов по их местам в пароле нам неизвестен. Ведь очевидно, что генератор вряд ли допустит последовательности «ааа» или «111», значит он уже не равномерный для каждой позиции. А проведенные в этом и предыдущем (а он как раз рассматривал только пароли, не подобравшиеся по словарю!) топиках исследования показывают, что он довольно интересный и может облегчить брут.
  • Новый алгоритм для депикселизации графики
    +3
    Читая соседний топик внезапно подумал, а для сглаживания шрифтов такой алгоритм можно принципиально использовать?

    Или там свои хаки вроде подстраивания под пиксельную сетку и т.п.?
  • Суперкомпьютер IBM Watson усвоил знания 2-го курса медицинского вуза
    +18
    На самом деле можно пойти в рассуждениях дальше, и если у этого суперкомпьютера сформируется репутация диагноста-гения, то при каждом обращении к его всезнающему мозгу пациент будет преисполнен веры в успешное лечение, и это также будет оказывать дополнительный положительный эффект :)
  • HTC Desire S — особое желание
    +4
    Надпись Single Malt Scotch Whisky какбэ намекает, что перед нами бутылка односолодового виски, а не вина :)
  • Почему надо платить: все по полочкам
    +3
    Ответ прост: потому что билет на это место мог бы купить кто-то другой и досидеть до конца.

    При этом при такой схеме возникает тысяча ньюансов, например, очень легко саботировать просмотры у «конкурирующего» кинотеатра — приходим толпой по 50 человек, сидим первые 5 минут, встаем и уходим. В итоге ползала (или даже весь?) остается пустым и кинотеатр получает 500 рублей. И так много-много раз.

    Бредовая идея.
  • Valve выпустила бета-версию редактора уровней для Portal 2
    0
    Да я сам счастливый обладатель PS3, поэтому против консольной графики плохого ничего не могу сказать. Однако самые свежайшие графические плюшки (тесселяция и проч.) DX11/OpenGL4.x ими не поддержаны, соответственно в портах на консоли их все равно не будет. Именно в этом плане на рынке они не особо востребованы. Поэтому так и говорю.
    Да о чем речь, некоторым PS3 играм даже AA толкового недостаёт (не знаю как на XBox с этим дела обстоят).
    С другой стороны Source славен тем, что шустр, и «бегает» достаточно резво даже на слабеньких машинах, это тоже плюс я считаю.

    В общем суть моего комментария в том, что нельзя списывать сурс со счетов только из-за его графической составляющей. :)
  • Valve выпустила бета-версию редактора уровней для Portal 2
    +2
    Не знаю кого как, но меня лично немного коробит от изречений вроде «я узнал Source по угловатым моделям». Source — это в первую очередь игровой движок, он содержит множество различных составляющих (физика, анимация, звук и, конечно же, графика). Я уже не первый раз вижу, как «непродвинутось» (назовём это так) его графической составляющей воспринимается как камень в огород всего движка, мол, он морально устарел и т.д. и т.п.
    Добавить в графическую составляющую движка поддержку различных наворотов DirectX 11/OpenGL 4.x на мой взгляд особого труда не составит, но рынку (взгляните хотя бы на консоли 2005/2006 годов выпуска) пока это не особо надо, пусть CryTek гоняются за «красивостями».
  • Вычисление в куче Хаскеля
    +2
    Мне кажется нужно спрятать unsafePerformIO подальше и никому не показывать :)
  • Пора завязывать использовать пробелы вместо табуляции в коде
    +3
    Второй. Просто потому, что, во-первых, давняя привычка, а во-вторых, по счастливому случаю у нас в коллективе принят именно такой формат.
  • Пора завязывать использовать пробелы вместо табуляции в коде
    +7
    Почему-то автор забыл про языки, в которых indentation это не просто способ оформления кода, это часть стандарта языка. Помимо упоминавшегося уже здесь Python хочу напомнить о существовании Haskell, в котором «форматирование» табами надолго может затянуть в поиск ошибки, которой не видно на глаз.

    Лично я за пробелы. Хотя бы просто потому, что величина отступа, на мой взгляд, наименьшая из проблем с переходом на новый «стандарт» форматирования, с которой может столкнуться программист в новом коллективе. Например, для Java различия между
    public class Foo {
        public void foo() {
            return 0;
        }
    }
    

    и
    public class Foo 
    {
        public void foo()
        {
            return 0;
        }
    }
    


    для меня куда большая проблема с читабельностью, чем эти ваши табы.
  • LINQ for Java: LambdaJ
    0
    Когда увидел первый пример тоже сразу подумал про Lisp :)
    ИМХО, как-то нечитабельно…
  • Встречай наследника: Первый взгляд на Nokia E6 и Symbian Anna
    0
    Не знаю, меня очень заинтересовал. Я ушел с андройда (Acer Liquid) на Е71, очень доволен аппаратом, но я смирился с тем, что эта платформа «мертвая». Поэтому был очень удивлен продолжению традиций qwerty смартфонов Е-серии. Думаю, что немного подожду снижения цен и поменяю Е71 на Е6.
  • Flash Player 10.2 + vdpau + 64-bit
    +7
    Какая у Вас неловкая опечатка :)
  • Как не обидеть человека, если он совершил ошибку?
    0
    Здесь можно двояко трактовать. Зачастую сталкиваешься с менеджерами со стороны заказчиков, которые не могут сформулировать точное и строгое ТЗ, они просто не понимают чего нам еще не понятно. Но это клиент, увы, с ним приходится работать и приходится вытрясать эти требования, иначе же в любом случае тебе всё переделывать…
  • Ubuntu 11.04 возвращается назад на классический GNOME по умолчанию вместо Unity?
    +3
    Нет, 11.04 это не LTS.
    LTS релизы выходят каждые два года, соответственно следующий LTS — 12.04.
  • Пример асинхронной монады
    0
    Прошу прощения, я был не прав, Вы привели верный аналог функции test от автора.
  • Пример асинхронной монады
    0
    Разве это готовый код, который можно скомпилировать и запустить, и в котором можно «пообщаться с собой»? Где реализация SendRequest? Что такое Unit? При этом Вы пишете в консоль прямо в коде, описывающем протокол взаимодействия.
    Увы, но на мой взгляд это демонстрация минусов императивных языков, Вы не моргнув и глазом намешали описание взаимодействия и тонкости конкретной реализации.
  • Пример асинхронной монады
    +1
    Уф, прошу прощения еще раз, поправлю сам себя:

    4) Конечно же, а — это не состояние собеседника, а скорее состояние «сервера» перед диалогом по «протоколу» act.
  • Пример асинхронной монады
    +5
    Заранее прошу прощения за длинный комментарий.

    Признаться честно, мне было сложно проследить нить рассуждений автора. Сложно было отделить… скажем так API от тонкостей реализации в тексте. То есть сложно было вычленить ту часть кода, которая мне нужна, чтобы вот взять и начать использовать эту монаду на практике.

    Позволю себе несколько ремарок:
    1) Статус определённой вначале функции test (я бы назвал ее лучше example) для меня был темным до тех пор, пока я не увидел листинг диалога с интерпретатором в конце статьи. Итак:
    Функция тест является описанием протокола взаимодействия с неким собеседником. Замечу, что нам не интересно кто это будет и какого будет его состояние, мы просто описываем последовательность отправок и приёма сообщений (а также, возможно, некоторого промежуточного ввода\вывода, допустим обращения к базе, что реализуется через вызов функции io). Именно такое описание взаимодействий есть цель, к которой стремится автор в течение всей статьи.

    2) «Дабы не отвлекаться на лишние детали и не иметь необходимости запускать несколько программ, я упрощу задачу для статьи». На мой взгляд всё лишь усложнилось, потому что перестало быть видно «отдельных участников» обмена сообщениями. Лично для меня это было понять тяжелее всего. Но пока по отложим этот вопрос.

    3) Итак, функции send и response. Когда я впервые увидел эти функции при первом беглом чтении статьи, я решил, что это и есть ОНО — отделение посылки сообщения и ответа на него, ан нет. На самом деле функцию send стоило бы назвать sendAndRecieve, ибо она описывает не только ЧТО отправить, но и КАК обработать полученный в ответ результат. А функцию response (ответ) в свою очередь лично я бы назвал request (запрос), ибо это более точно отражает, на мой взгляд, суть процесса.

    4) Наконец, run — это инициация диалога act (да, того самого, который представлен, например, функцией test) с собеседником, заданным состоянием a.

    5) И последнее — в данном примере мы ведём диалог сами с собой (trace и listener помогают нам в этом)! Может быть это тривиальная мысль, но я никак не мог ее уловить, смотрим: сперва мы инициализируем два диалога с самим собой, причем наш ввод выступает как раз тем самым «собеседником», с которым мы общаемся посредством протокола test. В первый раз нам прислали 10, во второй — 20. По каким-то одним нам ведомым причинам в ответ мы отправляем, соответсвенно, 11 и 21 (это и будут первые слагаемые нашей результирующей суммы). Они возводятся в квадрат нашим протоколом и вновь обратно к нам. Теперь мы добавляем более безумные 444 и 122, в результате дающие нам суммы 465 и 133.

    Вывод: я заключил для себя следующее. Функции, описывающие протокол (типа test) взаимодействия, я бы назвал «серверной частью» (для простоты восприятия). Конкретный же «клиент» отправляет «запросы» к этому протоколу откуда-то извне (легко переписать это дело на сокеты) — в нашем случае это была строка интерпретатора и функция f (которую опять же следовало бы назвать как-то более осмысленно).
  • Canonical больше не будет бесплатно рассылать диски с Ubuntu
    0
    Вы всегда можете заказать его за символическую стоимость в $7.92 :)
  • Говнокод: врага надо знать в лицо
    +19
    У Вас [ пропущена после восьмого символа (перед вторым >)
  • Говнокод: врага надо знать в лицо
    +3
    В тред врывается Haskell.

    1)
    import Data.List

    main = mapM_ (putStrLn . foo) [1..6]
    foo n = concat $ intersperse "-" $ (if odd n then id else reverse) $ take n $ map show [1..]


    2) (Я сильно вспотел, когда писал это)
    codepad.org/NQUSqcjc
  • Haskell Tutorial с другой стороны
    +2
    На самом деле у меня разрешение 1920х1080, поэтому проблем с недостатком места не ощущаю :) А окошко сжал специально для скриншота просто для удобства восприятия.
  • Haskell Tutorial с другой стороны
    +1
    Я пробовал и Leksah (специальная IDE для Haskell, написанная на Haskell), и плагин к Eclipse смотрел, но пришел к выводу, что лично мне это всё не нужно. Поскольку у меня Linux, то я пользуюсь текстовым редактором gedit с плагином терминала. Gedit умеет подсвечивать код, поддерживать отступы и т.п., а в терминале в это время запущен GHCi интерпретатор, этого хвататет, ну во всяком случае хватало для моих относительно небольших проектов.

    В итоге получается как-то так.
  • Haskell Tutorial с другой стороны
    0
    Ну вот, вопиющие неточности вроде как устранил…
  • Haskell Tutorial с другой стороны
    +1
    Да, я знаю, что такое монады. Знаю и о Maybe, и о списках… Я указал, что монады более широкое понятие, но здесь следует думать о них только в контексте I\O. Вы правы, наверное, это не очень корректно.
    Отсюда и некорректность определения чистоты. Завтра попробую «пофиксить» текст, сегодня уже глаза слипаются…

    А вот про pattern matching не очень понял. Вы имеете ввиду, что процедура выбора нужного уравнения лишь один из случаев применения сопоставления с шаблоном?