• PostgreSQL vs Oracle
    +2
    ACID ничто иное как илюзия. CAP теорема работает даже для одного узла. В любом компъютере есть процессор, память, кеши разные, постоянная память. И пусть доступность или согласованость теряется на меньшие кванты времени чем при распределенной системе, но потери есть. А теперь усложним задачу. Скажите хорошему банку что базу хранить будем в одном экземпляре и в одной локации. Банк не пройдет судить, а вас отправят в сад. Добавляем второй узел и об ACID забываем. Amazon как-то столько лет живет без ACID?
  • Юристы Apple продолжают копать под Samsung
    +2
    Как файл попал к эплу? Очень просто суд обязал передать всю информацию юристам эпла, так же как эпл обязан передать свою. Утаивание очень серьёзное преступление. В мужа не может быть использовано никакое доказательство если оно не было предоставлено противоположной стороне. Объемы данных которые нужно обработать составляет терабайты, самый дешовый клерк юрист возьмет за обработку данных не меньше 50$ в час, потому процессы получаются очень дорогими. В стремлении удешевить, автоматизировать эту работу возникла целая индустрия eDiscovery.
  • 10 самых влиятельных компаний в Cloud Computing
    0
    Єдиной стратегии нет и быть не может. Есть типовые примеры рекомендованых архитектур от Amazon, но всё одно, это довольно индивидуальные вещи:
    1. Какие объёмы пользовательских данных вы собираетесь обрабатывать,
    2. с какой скоростью, как достичь приемлемой для конечного польхователя визуальной скорости обработки.
    3. Индивидуальные особености платформы разработки(Я люблю .net, но деплоймент на iis это какая-то рулетка, примерно 25-30% деплойментов падают с непонятными ошибками).

    ELB <-> EC2 <-> S3
    EC2 <-> RDS
    EC2 <-> DynamoDB (иерерхические запроы начали летать)
    CloudWatch + custom metrics (привет App Pool с WF под IIS которые могут отожрать всю машину) + AutoScaling
    CloudFront оказался не нужен, для наших данных задержка отдачи контента клиентам была несущественна.
    EllasticCache тоже не нужен, вместо него исспользуется для схожих целей DynamoDB.
    Было желание подключить WebSockets/Long polling, но это уже без меня, и пока не решились отказатся от ELB в пользу своего балансера.
  • 10 самых влиятельных компаний в Cloud Computing
    0
    > Bizspark или MSDN
    MSDN — для большого продакшина не хватит.
    Bizspark — подойдёт только для стартапа и не всякого.
    У Amazon есть Free Usage Tier если уж на то пошло. А MSDN подписка денег стоит и немалых, за эти деньги AWS несколько лет можно оплатить.

    Если под SQL вы понимаете MS SQL, то для нагруженых сервисов он тоже не годится. Под MySQL есть тонны хорошо проверенных решений, которые достаточно быстро поднимаются и позволяют реализовать самые разные стратегии маштабирования, под MS SQL есть 2 или 3 whitepapers с кучей воды и выводом что даже с кучей бабла у вас ничего большого не выйдет. Ну, а аналога Dynamo DB c гарантированым откликом в Azure пока нет.

    > качественный Deploy Azure проектов,

    Ну я бы качественным этот Deploy неназвал. Microsoft просто спрятала все косяки IIS для вас за большим количеством попыток. Если смотреть немного шире, то Amazon предлагает нормальный деплой для Java, PHP уже давно, и недавно также для .NET, но я его ещ' не пробовал. В резульате я мого в одном решении исспользовать и Ellastic Search и ASP.NET WebAPI/Silverlight.

    Ну и проблема деплоя проблема тут с кривой архитектурой IIS и .net деплоя. До появления Azure MS вообще не задумывалась как опубликовать тоже приложение на сотнях инстансах IIS. WebDeploy плохо приспособлены к этому. WebConfig будет у вас один. Пришлось писать своё расширение для Chef которое положит правильный конфиг для сервиса. Ну и что достаёт больше всего, произвольное падение WebDeploy из-за кокого-то заблокированого файла, даже при чистом iis.

    > инстанс никогда не «умрет»
    Если вы не настроиили Load Balancer и мониторинг, то будет у вас умирать. Я так подозреваю что если вам нужны пользовательские метрики «живучести сервиса», то и Azure нужно настраивать. Для Амазона разработка продакшин решения заняла менее чем пол дня и решилась иссключительно маленьким скриптом. И вообще это задача для operation team.

    > вынести SQL на отдельный сервер
    То есть вы исспользуете AWS/Azure как банальный VPS. В любом чуть большем проэкте SQL Server жывёт на своём инстансе, просто потому что помяти хочет много и конкурирует за диск.
    Кстати буквально несколько недель или дней назад(не помню даты письма) Amazon запустил RDS и для SQL Server, так что MS SQL или Oracle или MySQL будет для вас всегда внешний, и Free Usage Tier на него тоже расспространяется.

    Итого из вашего объяснения я так понял что о том как маштабировать сервис вы сначала не задумываетесь и разница с Azure разве в том что некоторые вещи он от вас прячет, тот же LoadBalancer для AppFabric, прозрачный инстанс SQL Server и для вас создаётся ощущение более лёгкой настройки. Для ваших решений это работает. Для моего бывшего проэкта более 100 разных инстансов, .net/java AWS давала существеную экономию.

  • База по языкам программирования: Синтаксический сахар или история развития языков
    0
    Closure у вас чуть-ли не главное что есть в функциональном програмировании. Думаю этот раздел требует существенной переработки.
    Как появилось ООП, лучшего введения чем у Uncle Bob я не видел:
    skillsmatter.com/podcast/agile-scrum/uncle-bob-expert-insights
  • Oracle, Microsoft и Red Hat: Три пути к облаку
    +6
    Итак что имеем в остатке. Oracle — пока своё облако готовит, оно будет, но не завтра. Red Hat — игрок условный, поскольку поставляет только софт. Microsoft единственная кто имеет готовое рабочее решение.
    Но делая какие-либо обзоры в этой области и не упомянуть Amazon, а главное их экосистему, как минимум непрофессионально. Amazon уже сейчас на 1-1,5 года впереди Майкрософт, именно cloud/SaaS разработчиков под их платформу больше чем даже у Макрософта. Пока Oracle не зарелизит своих решений, и Red Hat, можна пока сказать они песочнице играют, это вторая лига.
    Для Oracle, SAP я считаю угрозу будет исходить именно от Amazon и их экосистемы, зачем кому-то менять Oracle с их невменяемой политикой на их же SaaS решениям где привязка будет ещё жостче, если будет альтернатива. Да я знаю что пока весь спектр софта от Oracle/SAP не покрыт, но альтернативы активно появляются и даже IBM выпускает whitepapers о построении решений на Amazon Web Services.
  • Верстаем PDF для Kindle
    0
    Есть такая функция как reflow она позволяет менять размер шрифта и форматирование.
  • Ученый разработал clickjack rootkit для Android
    0
    Учитывая то что производители телефонов выпускают обновления безопастости, раз в полгода, если вообще выпускают, то платформа получила серёзную уязвимость.
  • Почему бы я не рекомендовал Atmel или о непонимании успеха Arduino
    0
    Вы знаете у них своих американских «китайцев» хватает. В хорошо известной мне компании во время кризиса в Штатах сокращали целыми офисами. После кризиса, вместо хороших програмистов, инженеров электронщиков, набрали толпу людей с медицинской индустрии с опытом Visual Basic.
    А насчёт софт, компании привязывают релизы и всю разработку к цыклу выпуска новых чипов. И если планировать чип достаточно просто, условно 3 месяца топология, 3 отладка, потом 3 для подготовки производства, то с софтом так не выходит, но никого не волнует им выкатывай функционал одновременно.

  • Почему бы я не рекомендовал Atmel или о непонимании успеха Arduino
    0
    Чипы моей бывшей компании не идельны конечно, но всё же я себе даже представить такого не могу чтобы такие дефекты ушли в production. Попробуйте Cypress Semiconductor в зависимости от сложности задач есть PSoC1(провереный веременем микроконтролер на M8C, но не очень производительный) или более производительные PSoC3(i8051) PSoC5(ARM Cortex M3). IDE конечно по сравнению с студией не фонтан, но одни из лучших среди IDE для микроконтролеров. Да и отладчики, конечно не по 20$ но и не 600$
    www.cypress.com/?id=1353
  • Падение датацентра Амазона
    +1
    Ничего не надо перемещать, размещайте в разных географических зонах или хотя бы availability zone. Cloud сервис без дублирования с географическим разнесением ничем не отличается от VPS хостинга, у которого и єкскаваторы случаются и удар молнии.
  • С11 исправит ошибки С99
    0
    Возьмём например микроконтролерное ядро M8C которое используют чипы Cypress. Лучшие чипы имееют 512 байт RAM. Сколько таких масивов на стэке вы сможете создать? И нужны ли такому процесору такие масивы? Из stdlib реализировано все 3-4 функции.
  • 10 самых влиятельных компаний в Cloud Computing
    0
    Мой личный рейтинг:
    1. Amazon Web Services
    и с большим отставанием
    2. Heroku
    3. Azure
    4. Google App Engine

    И это при том что я .NET разработчик. Azure-у ещё клепать и клепать чтобы догнать Amazon, а главное догнать мало, нужны killer особенности, которых не будет у конкурента.
  • С11 исправит ошибки С99
    +1
    Например масивы переменной длины. На встроенных платформах без ОС, нет менеджера памяти, потому реализировать такой силами библлиотеки накладно.
  • Контроль температуры воды в газ. колонке
    +1
    Может если есть место лучше поставить поставить бак с насосом, нужное давление обеспечите сами. Ведь в случае «час пик» давление просядет ниже допустимого уровня.
  • Контроль температуры воды в газ. колонке
    +1
    Кажется мне что вариант с своим баком и насосом решение лучше, если есть место конечно.
  • Встречаем третий PowerShell (часть I)
    0
    Причина по которой мы отказались от PowerShell в продакшине WMIPrvSE, как только включаешь remoting для этого процеса 2 Гб занятой памяти не предел, при том что абсолютно никакого кода не иссполняется, нам remoting был нужен для переодической правки конфигурации IIS. Через 1,5 года и кучу патчей ситуация изменилась слабо(разве жрёт уже «всего» 600 Мб). В облачной инфрастуктуре при таких раскладах PowerShell места нет.
  • Цитаты о разработке программного обеспечения
    +1
    Zawinski's Law of Software Envelopment: Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can. — Правило Завинского разработки програмного обеспечения: Каждая програма стремится к расширению пока не сможет читать электронную почту. Те програмы которые не смогут так расширится будут заменены теми которые смогут.
  • Когда я говорил…
    0
    Вас никто не послушает к сожалению, потому что даже если дать вам денег на компанию, компания вашего образца долго не протянет. А всё потому что дать +ххх денег проще, не нужно заморачиватся и больинство ваших конкурентов так и будут делать. А ваш сотрудник в которого вы вложились посчитает что challenge challenge-ом, но лишних 500 тугриков в месяц, это 6000$ в год что составляет неплохую суму, или жена его съест, или тупой одногрупник, на Camry, а ты на Focus-е.
    К сожалению пока офсорсинг рулит, быть умным не окупается да и спроса нет, всем нужны пачки «индусов» на решение типовых задач. И ничего не изменится пока спрос существенно превышает предложение. Большинству не нужны ваши Python, Ruby, F#, Actor Model, моделирование процесов им нужны ASP.NET, Sharepoint, Struts и «вот эту кнопочку сделать жолтенькой, а при клике она разворачивается в банер». Вроде бы выход в продуктовых компаниях, но если туда менеджеры идут с оффсорса с тем же мышлением и конкурируют они с офсорсом то чаще всего получается то же самое.
    Есть некоторые приятные иссключения вроде Яндекса, но ведь нужно платить существенно выше по рынку, сколько офсорсов это выдержит.
    Проблема в рамках нашей маленькой экосистемы слаборешаема, вон даже у китайцев такая-же ситуация (12-й слайд).
  • Интерфейсель: Запутанная история
    0
    В даном случае как раз последовательный интерфейс.
  • Интерфейсель: Запутанная история
    –1
    Это также сделано для того, чтобы не определить источник питания
    — это предложение вообще непонятно, похоже на кривой перевод.
  • Интерфейсель: Запутанная история
    +10
    Serial нужно переводить не как серийный, а последовательный. USB — универсальный последовательный интерфейс.
  • Программирование микроконтроллеров семейства Cypress
    0
    Компания Cypress выводит PSoC1 из употребления, да выходят обновления, но чип остаётся тем же и менять его уже не будут. Рекомендую больше фокусироваться на PSoC3/PSoC5 туда Cypress направляет большинство своих ресурсов. Тaм и котролер USB3.0 и ядра более продвинутые.
    M8C послужил хорошую службу, но i8051, Cortex-M3 дают больше преимуществ.
  • Программирование микроконтроллеров семейства Cypress
    0
    Cypress FX2 это пусть хорошие, но просто контролеры шины USB, а семейство PSoC это другое, реконструируемая аналоговая и цифровая часть дают реализовать очень большой спектр устройств.
  • Утекла база LinkedIn хэшей?
    0
    Да исспользуєтся наверное на всех больших приложениях, вы «изобрели» SOA, «всё есть сервис».
    Авторизация/Автентификация у больших сайтов, отдельная служба с отдельными базами и ресурсами.
  • Утекла база LinkedIn хэшей?
    0
    Проблема с радужными таблицами в том что они очень большие их нужно где то хранить, а любой IO на порядки медленей CPU/GPU.
  • Утекла база LinkedIn хэшей?
    0
    Я не очень силён в математке, но мне кажется что моё объяснение проще:
    Если
    P — множество всех паролей
    H — множество всех хешей
    f() — хеш функция
    и f(P) -> H — множество значительно уже чем P, потому априори вероятны колизии.
    f(H) — получим множество T которое ещё уже.
    А дальше простая логика, если в H возможны колизии, то в T их будет ещё больше, так как P проэцируется в ещё меньшее множество и вероятность колизий растёт.

    Как-то так, если неправ поправьте.
  • История создания «компаса 21 века»
    0
    За ссылкой Application Note моего бывшего колеги с теоретическим обоснованием, формулами, прошивкой и схемой устройства. Такое представление более удобно для подражания, если вам нужно реализовать что-то на другой платформе, вам нужно понимание принцыпов.
  • Налог, да не тот
    0
    получилось как всегда «Строгость закона восполняется необязательностью его исполнения»
  • F# Хвостовая рекурсия. Подводные грабли. Часть 1
    0
    Кстати в этой статье приводится список случаев когда хвостовая рекурсия может быть применена
    A tail call is a call within a function whose result is immediately used as the output of the function — в случае с акумулятором(с статье привед'н схожий пример), исспользование оператора (+) не позволяет применить хвостовую рекурсию.
  • F# Хвостовая рекурсия. Подводные грабли. Часть 1
    0
    Насчёт акумулятора был не прав, это не побочный эфект не разобрался в коде.

    Насчёт блока try with, это ограничение by-design:
    blogs.msdn.com/b/fsharpteam/archive/2011/07/08/tail-calls-in-fsharp.aspx
    The call takes place in a try-catch or try-finally block (note that these calls aren’t really in tail position, by definition)
  • F# Хвостовая рекурсия. Подводные грабли. Часть 1
    0
    Я не владею F# в достаточно мере, но немного понимаю теорию функционального исчисления. Вы сами написали правильный вариант, передавая акумулятор как параметр вы получили «чистую» функцию, выход которой зависит только от входа. С исключением та же проблема.

  • F# Хвостовая рекурсия. Подводные грабли. Часть 1
    –1
    Сохранение состояния есть побочным эфектом. В чисто функциональном стиле, всё что вам нужно между вызовами вы должны передать параметрами функций. Функция не должна зависеть от количества вызовов, а только от параметров, в не зависимости от количества вызовов функции, вызов с одними и теми же параметрами должен возвращать один и тот же результат. Это азы функционального програмирования.
    На основе которых можно строить более сложные концепции вроде карринга и частичного применения функций. Функции «с состоянием» (побочными эфектами) ломают всё.
  • GitHub выпустил клиент для Windows
    +7
    Такая реакция на git.exe повод задуматься об адекватности «нортон 360».
  • F# Хвостовая рекурсия. Подводные грабли. Часть 1
    –4
    Извините но даже для далёкого человека от функицонального програмирования как я, ваши выводы кажутся ошибочными.
    Ваша проблема, ваши функции для оптимизации с помощью хвостовой рекурсии не должны иметь побочных эфектов. Неторые языки даже заставят вас писать в таком стиле( Erlang например).
  • Налог на сайт
    0
    Заставят как в Белоруси регистрироваться только в России.
  • Стоит ли смотреть в сторону PHP тому, кто решился только со второй попытки научиться прилично программировать?
    0
    У меня в загашнике целый фреймворк на Си для микроконтролера з эмуляцией ООП. Что-то вроде Си с класами. И о vtbl я знаю на практике.
  • Китайцы ворвались на рынок мини-компьютеров
    0
    www.digikey.com/product-highlights/us/en/texas-instruments-beagleboard/685#tabs-4 — я всё таки взял бы что-то от TI, поддержка от комьюнити и компании, долгая история, множество существующих разработок.
    Если есть деньги, то pandaboard.org/
  • Стоит ли смотреть в сторону PHP тому, кто решился только со второй попытки научиться прилично программировать?
    +1
    Для начинающего я бы вообще посоветовал забыть об IDE, вы должны сначала научится помимать как всё работает. ООП, паттерны не что иное как попытка управлять сложностью, подходы которые работают для 100-1000 строчек и количество состояний системы менее 20-50 перестают работать для проэктов с большим количеством состояний/строчек.
    Как вступление в ООП, паттерны я рекомендую обычно Крега Лармана «Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку» но для совсем новичкам она бывает сложна, тогда можно смотреть серию OReily Head First Patterns если есть перевод на русском.
    О PHP для понимания концепций стоит лучше забыть, есть языки более выразительные. И даже если вы исспользуете PHP для комерческой разработки, знакомство с другими языками рассширит ваш кругозор и позволит исспольховать некоторые конструкции для построения более качественных решений. Насчёт языка я бы порекомендовал Python, но это уже больше дело вкуса.
  • Карринг vs Частичное применение функции
    0
    Это думаю невозможно изза:
    return a => b => c => function(a, b, c);
    Но ведь поменяв порядок аргументов вы получите то же самое(вам не нужны именованые аргументы):
    curried(1)(2)(3);
    curried(3)(2)(1);
    Ведь это ничто иное как:
    curried(1) -Ю вернёт объект ссылку на функцию к которой будет применёна параметр (2) и результатом будет опять ссылка на функцию к которой будет применён параметр (3).