• Бесплатный Wifi в России теперь по паспорту
    0
    Для общего образования — это называется охлократия (буквально «власть большинства»). Демократия подразумевает наличие институтов для обеспечения равного участия каждого члена общества в принятии решений. Даже если этот член в меньшинстве.
  • FDroid как замена Google Play. Возможно ли и чем придётся жертвовать?
    +1
    Полезно указать ещё и этот сервис: APK Downloader. Позволяет скачивать приложения из Google Play без регистрации в Google Play. Только бесплатные приложения, правда.

    Ещё полезно поставить System Apps Mover, чтобы удалить Google Play и его сервисы. Если, конечно, Вы не удалили сразу из прошивки.

    Вообще без Google Play даже проще. По крайней мере таким людям как я — у меня телефон на Android 2.1, в GP практически ничто уже не совместимо с ним. А вот в F-Droid можно для многого выбрать версию, которая совместима.
  • Squeryl — простота и изящество
    0
    Сильно не хватает, особенно с учётом того, что она там есть :) Вот, например, вариант: gist.github.com/max-l/9250053

    Вообще Squeryl удивительно логичен внутри. Его можно расширять и видоизменять под любой вариант, практически. Первый ORM, с которым я не чувствую себя ограниченным.
  • Режим сброса смартфона к заводскому состоянию — не гарантия удаления личной информации
    +17
    Если бы вы об этом сообщили он лишился бы лицензии. И не потому что не стёр информацию надёжно, а потому что поместил Patient Health Information на мобильный девайс вообще. В US до сих пор нельзя этого делать, несмотря на все красивые эксперименты с iPad в больнице, в целом мобильные девайсы не должны иметь PHI.
  • Технологии чемпионата мира по футболу 2014
    +1
    Посмотрите вот это видео. На мой взгляд сложно на глаз определить за линией ворот мяч или нет в такой ситуации. Это Мексика против Бразилии.
  • Function Pointer — забытая реализация шаблона Singleton
    0
    А сборка какая? Вот специально проверил — загрузил ваш код в Eclipse Luna for JEE Developers. И получил чистое окно кода — никаких ошибко, предупреждений и вообще сообщений. Посмотрите в Help -> About Eclipse -> Installation Details. Я уверен это какое-то расширение добавляет сообщение.
  • 8 вещей, из-за которых не стоит жить в Силиконовой Долине
    +2
    Вы это серьёзно? Кажется год назад мы с вами же обсудили этот самый график и выяснили что он ничего общего с реальностью не имеет. И вы продолжаете тащить этот мусор на хабр! Как не стыдно?

    По существу: для всех стран с прогрессивным налогом взята тупо верхняя ступенька шкалы. Да, для меня (в Канаде) верхняя ступенька шкалы налога на доходы 46%, а вот эффективная ставка 18%. Такая манипуляция с цифрами на графике для красоты. А может стоило взять нижнюю ступеньку налоговой шкалы? А она 0%. Первые 13 тысяч дохода в год вообще налогами не облагаются.

    Дальше, все налоги свалены в кучу. Corporate Income и Personal Income сложены вместе. И туда же ещё и Wealth Tax, и VAT — они же разными лицами платятся и с разной базы. Как их можно складывать вообще? Для далёких от экономики хабравчан поясню. Это как если сравнивать электричество в США и России:

    РФ: 220В + 5А + 2кВт + 10ч = 237 попугаев
    США: 110В + 10А + 4кВт + 12ч = 136 попугаев
    Электричества в РФ больше!

    Вот график вверху такой же бред.
  • Function Pointer — забытая реализация шаблона Singleton
    0
    Странно, что ещё никто не поправил. Дефолтный Эклипс подобных предупреждений не выводит и никаких порочных практик не навязывает. У автора, видимо, стоит какой-то плагин типа Style Check, который и добавляет предупреждение. А в плагине стоит какой-то набор правил, в котором есть вот такое спорное (или ложно срабатывающее) правило. В любом случае, Эклипс тут совершенно не при чём.
  • Gmail API
    +3
    Зря минусуют. Gmail не полностью поддерживает IMAP, а часть реализует некорректно. Например удаление письма из входящих через IMAP только удаляет метку «INBOX», не удаляя само письмо.

    Это типичный подход большой корпорации: да, мы знаем что есть международный открытый стандарт, но нам лень его реализовывать и у нас так много пользователей, что мы просто опубликуем своё проприетарное API и все на него пересядут.
  • Простейшее приложение, отправляющее контактам слово «Yo», заработало 1 млн долларов и попало в топ-10 приложений App Store в США
    +1
    Был такой телефон, MotoMING A1200 — раскладушка с прозрачной крышкой. Там можно было отправить шаблонное СМС не открывая крышку. Если в ответ на полученное сообщение, то вообще в два нажатия на хардварную кнопку. Уж точно проще…
  • Терминальная стадия копирайта или «Гугл, ты не прав»
    +2
    Ха, вы считаете что вот это спорная ситуация? Как на счёт блокирования видео из-за звука ветра или пения птиц? :) Вот, например, прохладная былина.
  • Сайт TrueCrypt сообщает о закрытии проекта и предлагает переходить на BitLocker
    +20
    Ещё вариант. Разработчик устроился работать в Microsoft, в отдел связанный с криптографией. Он раскрыл себя как автора truecrypt чтобы получить работу, а MS поставило условием закрыть проект. Такого рода условия (и вообще условия контракта найма) являются коммерческой тайной. Эта версия по сути объединяет две — недовольство малым количеством денег отданых проекту (по сравнению с деньгами на аудит) и выполнение не очень продуманного распоряжения юриста (юриста компании, а не секретного судьи только).
  • Сайт TrueCrypt сообщает о закрытии проекта и предлагает переходить на BitLocker
    +2
    Ещё с реддита. Команда Tails активно занялась миграцией от TrueCrypt две недели назад. Совпадение? Сылки: reddit, тикет на миграцию
  • Сайт TrueCrypt сообщает о закрытии проекта и предлагает переходить на BitLocker
    0
    Да, это верно. То есть я думаю что это не только MS, а MS совместно со спецслужбами. Как именно это организованно — не понятно. И тем более не понятно что первично — MS попросила помощи спецслужб по устранению конкурента, или спецслужбы прикрывают устранение закладок именем MS.
  • Сайт TrueCrypt сообщает о закрытии проекта и предлагает переходить на BitLocker
    +17
    Я считаю что автор выполняет распоряжение секретного суда. Похоже что суд распорядился прекратить разработку проекта и удалить все ссылки. Почему я так думаю:

    1) Почему автор изменений и есть оригинальный автор: в diff'е много изменений, направленных на общее улучшение проекта. Где-то размер буффера увеличен, где-то комментарий подправлен. Видимо автор работал над проектом после прошлого релиза, а потом его заставили проект закрыть.

    2) Почему распоряжение суда: Из кода удалены все ссылки на все домены, а не только на truecrypt.org. Так же удалены ссылки на wxWidgets и RSA. При прекращении проекта имело смысл удалить ссылки на его сайт, но удалять ссылки на зависимости нет никаких причин. Но судебные документы часто имеют такую тенденцию к чрезмерным формулировкам, вроде «закрывающая проект версия не дожна содержать интернет адресов».

    3) Я думаю что за судом стоит не NSA, а Microsoft. Подозрение появляется из-за предложения перехода, но не только. Из кода НЕ удалены ссылки на сайты microsoft. Например старая ссылка на статью в Knowledge Base. То есть распоряжение суда могло быть «удалить все ссылки, кроме ведущих на сайты MS». К этому предположению есть даже одна канарейка: удалено выражние «MS bug» из комментария, тогда как сам воркэраунд не тронут. Странно так редактировать комментарии, но все мы знаем одну компанию, которая очень чувствительна к слову bug.
  • Что не так с Google+
    +2
    Мне довелось учавствовать в таком эксперименте. В результате сервис превратился в почти чистый сервис знакомств. Что не плохо, но составляющая социальной сети действительно почти исчезла.
  • Сравнение юзабилити современных браузеров со старой Оперой
    +2
    Для групировки вкладок использую Tree Style Tabs дополнение.
  • Что не так с редизайном Хабрахабра
    –4
    Интересно. Может это только в Windows?
  • Что не так с редизайном Хабрахабра
    –2
    На счёт Firefox вы неправы, кстати. Никаких «габургеров»:

  • Что не так с редизайном Хабрахабра
    +30
    А в Firefox OS эта иконка означает «Уведомления». А в андроиде это вызов меню (как в Thunderbird'e было сделано). А на iOS эта иконка перетаскивания элементов в списке. Ваше «как положено» это какое «как положено»?

    Вообще, имхо, на редкость неудачная иконка. Как чёрный квадрат — сама по себе вообще ничего не значит.
  • Новая навигация и другие изменения на Хабре
    +2
    А на самом деле спасибо. Такой ужасный дизайн наконец-то подтолкнул меня написать свой стиль для хабра. Теперь мне удобно. Уверен, что вы в статистике посещаемости изменений не заметите. Такая уж аудитория у хабра, что плохой дизайн просто исправляют все.
  • Новая навигация и другие изменения на Хабре
    0
    Спасибо. А то я «display: none» сразу сделал, и только потом стал думать «а вдруг понадобится». Сам с CSS почти не дружу…
  • Конструирование типов в Scala
    0
    Спасибо за пояснения. Да, действительно интересный подход.
  • Конструирование типов в Scala
    0
    HList напоминает Union Type. Наверное мне пора серьёзнее посмотреть на Shapeless.

    Не совсем понятно применение. Экономии на количестве классов в JVM не получается, потому что «object Person» создаст класс «Person$». Чтобы избежать copy-paste на однотипных операциях можно использовать дженерики, хоть там type erasure и ограничивает возможности узнавать тип в рантайме. Но в паре с Typeclass pattern (см. например мой блог) можно это обойти, да ещё и перенести обработку выбора кода для конкретного типа на этап компиляции.

    Пример с delta был бы интересен. Особенно чем он отличается от

    case class Person(val name: String, val address: Option[String])
    val john = Person("John", None)
    val john2 = john.copy(address = Some("22b Baker st")
    
  • Типы-значения в Java
    0
    Не минусующий, но отвечу. Знание про invokedynamic очень упрощает чтение вывода «javap -c MyClass.class».
  • Долой оковы MongoDB
    +1
    Если принято решение самостоятельно управлять памятью, так пожалуйста — добро пожаловать в off-heap. У Hazelcast кажется была бесплатная версия хотя бы. Или на ByteBuffer.allocateDirect() можно безболезненно перейти (но он не гарантирован в off-heap). Ну и я бы не был столь категоричен с «нельзя память отдавать на откуп GC». У меня были приличные БД в продакшене на Cassandra и SOLR (и видел ещё на ElasticSearch). Как раз базы данных на Java, но к ним написано руководство по GC-tuning. JVM GC может оказаться хорошим другом, если он настроен правильно.

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

    А если есть желание помочь авторам допилить эту БД: то конечно помогайте. Код довольно читаемый, кое-где комментарии бы не помешали, но самые критичные места откомментированы. Разве что пугает объём этого кода… Ну так это же БД.
  • Новая версия DuckDuckGo
    0
    Было бы интересно привести пример. Потому что в моём случае выдача DDg намного более релевантная чем у других. Например, искал кое-какие собственные статьи из standalone блога. Утка всё находила, а Google вообще дуб дубом. Ситуация с гуглом исправилась только после посещения какой-то страницы для веб-мастеров и ручной отправки адреса блога crawler'у для индексации.

    Проблема с гуглом стала в том, что слишком много сайтописателей ставят шпиона Google Analytics и Google стал слишком полагаться на данные оттуда. Поэтому целые сектора интернета для него «невидимы». У DuckDuckGo же свой crawler, который именно что и ходит по ссылком и достаточно наличия релевантных ссылок на сайт чтобы он оказался проиндексирован.
  • Долой оковы MongoDB
    +9
    На главном сайте ссылки на код не нашёл. Кажется вот он: code.google.com/p/asterixdb/

    Посмотрел код… Мне кажется что производительность будет ужасная, особенно когда будет сделана попытка добавить устойчивость к сбоям, репликацию и масштабирование. Очень неприятно выглядит реализованная система типов и алгебра поверх нативных типов JVM. С одной стороны она очень примитивная (особенно по сравнению с postgresql), с другой стороны очень многословная. Я проследил выполнение функции max, которая SQL_MAX в исходниках. Код написал в «лучших» традициях энтерпрайзной Java. На пути выполнения простой функции встречаются десятки фабрик, классов-обёрток и прочего. И бОльшая часть кода отвечает за выведение типа и поиск к нему компаратора, а не собственно поиск максимального элемента. Плюс если у меня будет триллион записей типа int и одна последняя какого-нибудь несравнимого с int типа, то max вычислит max для всего триллиона и только на последней записи отправит Exception, что тип для всего выражения не вывелся.

    Посмотрел и публикации. Более интересным показалось управление памятью в Hyracks ( code.google.com/p/hyracks ). Хотя я плохо понимаю зачем писать на Java, если при этом используется кастомный менеджер памяти почти для всего. Причём кастомный менеджер памяти использует ByteBuffer.allocate(), который создаёт массив внутри JVM Heap. То есть память получается под управлением родного JVM GC и кастомного внутри Hyracks.

    В общем, проект молодой и исследовательский. Поэтому написан свой язык запросов, своя библиотека парсера, своя система типов и своя алгебра. Свой менеджер памяти и менеджер задач. Ничего не имею против, студентам очень полезно всё это писать и изучать. Но вот использовать результат в продакшене я бы не советовал.
  • Долой оковы MongoDB
    0
    Блокировки уже давно не на всю БД, а на коллекцию. Тоже великовато, но всё же.
  • Разъяснение http2
    +1
    Кстати такое будет работать. Можно будет делать push для /user/profile/summary и /user/profile/full (см мой коммент ниже для деталей) и ответ на оригинальный запрос /user/profile завершать когда все составные части запушились (и завершать тогда без контента).

    Спасибо.
  • Разъяснение http2
    +1
    Отвечу вместо автора. У одного моего сервиса был API вызов, в котором часть данных было гарантированно в кэше, а часть надо было запрашивать в БД. Если кратко, то там было вроде /user/profile?style=summary и /user/profile?style=full. То что для Summary спрашивается везде и гарантированно в кэше (для залогированного пользователя). Так вот, при ответе на запрос с style=full, можно было бы послать «summary» часть сразу, а расширенную дослать когда она соберётся из БД.

    Конечно в этом случае можно обойтись двумя запросами и обработать на клиенте. Но было бы здорово сохранить API чистым и красивым, а все хаки для производительности спрятать. Тем более что состав быстрой и закэшированной части мог бы меняться без изменения API таким образом.
  • Пара слов о числах с плавающей точкой в Java
    0
    Заинтересовался и посмотрел. Действительно на уровне API принимает double и конвертирует в int64_t. Странное решение, но на уровне протокола всё нормально. Только пользователям будем неудобно, нельзя посылать количество денег, которое бы и можно бы выразить на уровне протокола, да точности параметров API не хватает.

    Ещё забавная проверка на «dAmount > 21000000.0». API не даст даже попытаться послать все деньги в мире сразу :)

    Но, по крайней мере, на уровне bitcoin протокола всё в порядке.
  • Пара слов о числах с плавающей точкой в Java
    +4
    Конечно не ново, но мне кажется надо каждые лет пять-семь постить такой текст. Чтобы очередное поколение «хакеров» выучило. А то будут снова деньги через double считать…
  • Изменения в String. Java 7
    +3
    А впрочем нет, на счёт inline я не прав, запустив с "-XX:+UnlockDiagnosticVMOptions -XX:MaxInlineSize=1024 -XX:FreqInlineSize=1024" вижу

    @ 5   java.lang.String::split (7 bytes)   inline (hot)
      @ 3   java.lang.String::split (326 bytes)   inline (hot)
    


    Но всё равно:

    Benchmark                             Mode   Samples         Mean   Mean error    Units
    c.t.r.MyBenchmark.testRegexSplit     thrpt         9     2938.355       89.851   ops/ms
    c.t.r.MyBenchmark.testStringSplit    thrpt         9     1743.708      199.431   ops/ms
    

  • Изменения в String. Java 7
    +5
    Ну всё же не на порядок String.split медленнее будет, но заметно:

    Benchmark                             Mode   Samples         Mean   Mean error    Units
    c.t.r.MyBenchmark.testRegexSplit     thrpt       200     2609.201       49.123   ops/ms
    c.t.r.MyBenchmark.testStringSplit    thrpt       200     1786.003       28.201   ops/ms
    


    И мне что-то кажется что только вот из-за этого:
    @ 6   java.util.regex.Pattern::split (7 bytes)   inline (hot)
       @ 3   java.util.regex.Pattern::split (261 bytes)   inline (hot)
    

    versus
    @ 5   java.lang.String::split (7 bytes)   inline (hot)
      @ 3   java.lang.String::split (326 bytes)   hot method too big
    
  • Время больших премьер: Nokia на конференции Microsoft BUILD
    0
    Красивая легенда. В неё даже можно было бы поверить, если бы я не видел людей именно так держащих телефон во время разговора. И знаете почему? А потому что «Сенсорный экран, покрытый стеклом Gorilla Glass 3, по традиции отличается высокой чувствительностью и позволяет управлять смартфоном в перчатках[, а так же срабатывать от любого неосторожного движения]».

    Не буду советовать что Вам самим стоит искоренять. Просто перечитайте собственный комментарий, пожалуйста.
  • Время больших премьер: Nokia на конференции Microsoft BUILD
    +6
    Когдя я вижу людей вот так эргономично использующих телефон мне кажется что где-то прогресс пошёл не туда. А теперь даже в маркетинговой картинке такой ужас показать могут…

  • Canonical закрывает сервис Ubuntu One
    +3
    Очень жаль. Единственный сервис был которому можно было хоть как-то доверять файлы.
  • Великий Российский Фаервол, что будет когда занавес опустится?
    +1
    В опросе не хватает варианта «момент настал много лет назад, пути отхода найдены и активно используются».
  • Google отказывается от подчеркнутых ссылок
    +1
    Зашёл, проверил, работает. Veni, vidi, vici.