Search
Write a publication
Pull to refresh
0
0

User

Send message

Джон Кармак о статическом анализе кода

Reading time4 min
Views14K
«Самой важной вещью, которую я сделал как программист за последние годы — это начал агрессивно применять статический анализ кода. — пишет Джон Кармак в статье, опубликованной на AltDevBlogADay. — Не так важны сотни серьёзных багов, которые удалось предотвратить, сколько смена ментальности и моего отношения к надёжности ПО и качеству кода».

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

Разработка приложений на языке Scala

Reading time4 min
Views19K
В этом небольшом посте я постараюсь рассказать с чего начать разрабатывать приложения для Android на языке Scala с помощью SBT и IntelliJ Idea, а так же плюсы и минусы этого подхода. Все будет довольно просто, стоит только запастись терпением. Весь процесс описывается для unix like систем, на Windows не проверялось, но если очень хочется, то можно попробовать провернуть то же самое через cygwin. Итак…

Существующие решения


При беглом гуглении можно наткнуться на эти три (раз, два, три) замечательные статьи, которые в красках поэтапно описывают долгий и тернистый путь к просветлению, а именно как поднять SBT проект для Android в Idea. Этот метод устарел, потому как в статье описывается процесс для SBT 0.7.4, а так же многие ненужные шаги, которые только отталкивают от дальнейшего изучения материала. Не смотря на это, я рекомендую их к прочтению, чтобы иметь базовое представление с чем вы имеете дело.

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

Инструменты


  • ItelliJ Idea community edition с поддержкой Android — самая дружественная к Scala IDE на сегодняшний день (есть еще ensime, но это из другой оперы).
  • JDK 6 для linux/mac os. Путь до JDK необходимо прописать в глобальной переменной JAVA_HOME (можно в ~/.bashrc).
  • Android SDK для linux/mac os. Путь до SDK должен быть также задан через глобальную переменную ANDROID_SDK_HOME, но, внимание, для видимости всей системой, поэтому прописывать переменную нужно строго в /etc/environment. Может потребоваться перезагрузка.
  • Simple Build Tool (SBT) 0.10.1 — инструмент для генерации и сборки Scala проектов. Недавно проект сменил имя на XSBT и переехал на github, что весьма удобно.
  • Android плагин для SBT — для ознакомления, потому как данный плагин ставится автоматически.
  • giter8 (g8) — утилита для генерации проектов из шаблонов, опубликованных на github.
  • Мой шаблон g8 для генерации Idea проектов.
  • Настроенный Android Emulator или напрямую подключенный андроид смартфон с включенной USB отладкой.


Читать дальше →

Знакомство с XNA и написание первой музыкальной игры

Reading time13 min
Views49K
Привет всем начинающим геймдевелоперам и просто хорошим людям. Сегодня, я хочу познакомить вас с замечательным фреймворком XNA (набор инструментов с управляемой средой времени выполнения dotNet). Программировать мы будем на C#.
Для того, чтобы познакомить вас с XNA ближе, я предлагаю написать простую «музыкальную» 2D игрушку. Остальное под катом.
Читать дальше →

ScrumMaster — сильный лидер с правом на отстрел

Reading time5 min
Views37K
Сегодня хочу обсудить одну из краеугольных тем в мире Agile — по каким визуальным и обонятельным признакам подобрать эффективного лидера Agile команды, работающей, допустим, по Scrum, среди множества двухдневных самоучек, могущих привести команду и проекты к хаосу.

Для начала вспомним отличия традиционной системы управления — репрессивной, от гуманной и творческой Agile модели.

Репрессивная модель управления


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

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

image

Модель, разумеется, очень эффективна на коротких и средних дистанциях. Еще бы — вспомним Фашистскую Германию, ее бурный рост и развитие. Но… модель имеет косяки, т.к. «посеявший ветер, пожнёт бурю» (чем заканчивает владыка ситх и его последователи, мы знаем :-)).

Читать дальше →

Основы разработки игр для iPhone с использованием Cocos2D

Reading time6 min
Views29K
Привет, Хабражитель!

Многие люди мечтают научиться писать программы, игры, но не получается по многим причинам. Я, изначально, не хотел ничего писать потому что не было интересной платформы, и я был еще слишком маленьким. Потом все изменилось. Наступила новая эра в телефонной индустрии – появился iPhone. Я сразу, как о нем услышал, загорелся желанием его приобрести. Платформа сразу понравилась, кнопок и стилуса нет – самое то для игр.
Программы я начал писать в ноябре 2009, если их можно назвать программами :). Многие спрашивают как я учился – на видео-уроках с YouTube, а как еще? Читать непонятные уроки по iPhone SDK? В тот момент я загорелся идеей учить таких же как я – начал записывать видео на YouTube новым для меня темам.
Если интересно: http://bit.ly/pdyoutube. Потом все пошло и поехало, сам стал лучше программировать и запоминалось все намного лучше. Не буду писать очень длинное вступление – перейдем к самому интересному.

Всегда хотел делать игры, но на пустом Xcode не очень удобно и понятно. Стал выбирать платформу (фреймворк) для разработки игр под iPhone, iPad. Мой выбор остановился на Cocos2D. Многие спросят почему – он очень простой в использовании, очень! Он еще и бесплатный и часто обновляемый!

Читать дальше →

IPO for dummies. Часть V: жизнь после IPO

Reading time4 min
Views3.1K
Начало и оглавление см. в первой части.

А что можно было бы ожидать на следующий год после IPO?

Через год после (описанного в предыдущей главе) удачного IPO (хоть и прошедшего со слабеньким P/E равным 12.5) пять акций Пети стоят 2500 долларов, а пропорциональная его доле часть прибыли составляет 950 долларов. Настало время готовить годовой отчёт…
Читать дальше →

Техноблог: почему Evernote выбрал Apache Thrift для построения своего API

Reading time4 min
Views15K
Thrift
Когда мы начинали планировать, как будет устроен сервис Evernote, в 2007 году, мы знали, что в первый же день нам понадобится поддержка как “тонких” (таких как браузеры), так и “толстых” синхронизируемых клиентов. Это побудило нас задуматься над удаленным протоколами и клиентским API еще до начала работы над любым GUI для веба. В противном случае пришлось бы ждать несколько месяцев, пока прикрутят API на уже существующий веб-сервис.

Наши приложения предъявляют к API определенные требования, как то:
Читать дальше →

Книги, видео и другие материалы по разработке под iOS

Reading time4 min
Views114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


Когда решаешься заняться разработкой под iOS, то трудно выбрать литературу и ресурсы, которые действительно были бы полезны. Хорошо еще, что Apple предоставляет множество учебных материалов и программ с открытым исходным кодом в своем центре для разработчиков. В остальных книжках можно если и не утонуть, то порядочно захлебнуться. Сейчас я жалею, что потратил время на пару «мануалов». Не буду делать им антирекламу, а лучше порекомендую хорошие материалы по программированию под iOS.

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →

5 причин отказаться от оценок

Reading time2 min
Views5.2K
В нашей компании мы не оцениваем работу. Ни в часах, ни в поинтах, ни в зеленых крокодилах. Совсем не оцениваем. Если вы давно хотели отказаться от оценок, но не знали, почему, вот вам пять причин.

1. Вы не будете тратить время на оценки


Оценки занимают время. Даже если вы оцениваете в абстрактных поинтах, играя в покер, все равно тратится прилично времени. А что, если вы хотите улучшить точность оценок? Тогда вы собираете данные, анализируете данные и обсуждаете результаты анализа. Все это тоже занимает прилично времени. Но подумайте, вам на самом деле нужны оценки? Часто это waste. Лучше потратить время на что-то действительно полезное для продукта.
узнать остальные причины

Фикс падения производительности при копировании/закачке файлов в Ubuntu

Reading time4 min
Views20K
Уже не помню, когда начились проблемы с производительностью при копировании файлов, но тогда я этому не придал большого значения так, как копировал файлы редко. Относительно недавно в моем распоряжении появилось высокоскоростное подключение к сети Интернет и теперь я часто копирую/качаю большие файлы и проблема падения производительности для меня стала очень актуальной.

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

Начало работы с Facebook SDK для iOS

Reading time8 min
Views20K
Сегодня важным элементом приложения является возможность сообщить вашим друзьям, коллегам, а также всему миру, что вы делаете, где и почему. В этом нам помогают социальные сети. Сети в свою очередь стараются облегчить труд программиста и создают свои SDK. Сейчас мы рассмотрим Facebook SDK для платформы iOS.

Когда я начинал разбираться с Facebook SDK примерно год назад, еще была версия, которая называлась facebook-iphone-sdk. Она и сейчас работает. Но я стал замечать странные сбои в приложении и решил, проверить не вышло ли что-то нового. Оказалось этот проект законсервирован, а разработчикам рекомендуется теперь использовать facebook-ios-sdk, где как утверждалось все еще проще. И как оказалось, не соврали.
Читать дальше →

DriverPack Solution 11 доступен для скачивания

Reading time3 min
Views7.6K

Дорогие коллеги!


Рад сообщить о выходе новой версии программы для установки драйверов DriverPack Solution 11!

В новой версии используются свежие базы драйверов, новый движок и реализована возможность установки дополнительных программ.
Ссылка для скачивания (объём 2,8Гб): http://drp.su/ru/download.htm


Наша цель – собрать все драйвера в одном месте.
Кстати, у нас уже 9млн. пользователей!
Читать дальше →

Snappy (zippy), библиотека для сжатия данных от Bigtable

Reading time1 min
Views3.4K
Google выпустил библиотеку Snappy под лицензией Apache 2.0. Эта библиотека для компрессии/декомпрессии нацелена не на максимальную степень сжатия или совместимость с другими библиотеками, а на максимальную скорость работы. Например, по сравнению с самым быстрым режимом zlib, Snappy примерно на порядок быстрее для большинства входящих данных, но архивы получаются на 20–100% больше по размеру. На одном ядре Core i7 в 64-битном режиме Snappy скорость компрессии больше как минимум на 250 МБ/с, а декомпрессии — минимум на 500 МБ/с.

Snappy широко используется в Google, в разных системах от BigTable и MapReduce до внутренних RPC-систем (в некоторых презентациях она упоминалась под названием Zippy).

Дополнительную информацию см. в файле readme. Бенчмарки по сравнению с другими библиотеками (zlib, LZO, LZF, FastLZ и QuickLZ) поставляются в комплекте с исходниками.

Unity3d script basics

Reading time13 min
Views111K


Предисловие


Эта статья будет посвящена новичкам в скриптовании Unity, но не совсем новичкам в синтаксисе JavaScript’а или любого другого подобного языка программирования. Тут надо маленько уточнить что JavaScript который использует Unity немного отличается от оригинального в пользу улучшенной поддержки ООП и называется соответственно Unity JavaScript. В нем например появились классы и их наследование, о чем не знают начинающие разработчики на Unity знакомые с объектно ориентированными возможностями оригинального JavaScript, поэтому отвергают его используя C# или Boo.
Читать дальше →

Wolfram Mathematica: знакомство

Reading time8 min
Views86K
Все знают Wolfram|Alpha, и наверняка слышали о Wolfram Mathematica. К сожалению, поиск показал отсутствие постов об этой замечательной среде на хабре, и данной статьей хотелось бы открыть серию публикаций посвященных программированию на Mathematica. Для начала стоит сказать о возможностях и особенностях этой системы, которых ой как много, так что запаситесь терпением. Если хабражителей заинтересует этот математический пакет, то обязательно последуют другие статьи, более конкретные, обучающие работе со средой и внутренним языком.

Читать дальше →

Алгоритм Мамдани в системах нечеткого вывода

Reading time10 min
Views120K

Введение


Так уж повелось, что любую статью о нечеткой логике принято начинать с упоминания имени Лотфи Заде. И я не стану исключением. Дело в том, что этот человек стал не только отцом-основателем целой научной теории, написав в 1965 году фундаментальный труд «Fuzzy Sets», но и проработал различные возможности ее практического применения. Он описал свой подход в 1973 году в тексте «Outline of a New Approach to the Analysis of Complex Systems and Decision Processes» (опубликованном в журнале IEEE Transactions on Systems). Примечательно, что сразу после его выхода одна предприимчивая датская фирма весьма успешно применила изложенные в нем принципы для усовершенствования своей системы управления сложным производственным процессом.

Но при всех заслугах Л. Заде, не менее важный вклад внесли последователи этой теории. Например, английский математик Э. Мамдани (Ebrahim Mamdani). В 1975 году он разработал алгоритм, который был предложен в качестве метода для управления паровым двигателем. Предложенный им алгоритм, основанный на нечетком логическом выводе, позволил избежать чрезмерно большого объема вычислений и был по достоинству оценен специалистами. Этот алгоритм в настоящее время получил наибольшее практическое применение в задачах нечеткого моделирования.
Читать далее

Linq To Tasks и монада продолжения

Reading time6 min
Views4.6K
После анонса C# 5.0 с его async и await, у меня появился небольшой интерес к асинхронному программированию, копание в сторону которого и послужило возникновению данного текста.
В процессе чтения статьи вы узнаете/омните.
  • Что есть монада на примере Maybe.
  • Что такое CPS и монада продолжения.
  • Как это связать с классом Task из TPL.

Читать дальше →

Цветовая схема Xoria256 для Midnight Commander

Reading time3 min
Views36K
screenshot

Спешу поделиться цветовой схемой Xoria256 для Midnight Commander, которую я сделал, взяв за основу одноимённую схему для редактора vim.

Для тех, кто не знает что такое Midnight Commander — это популярный двухпанельный файловый менеджер для UNIX систем (в т.ч. Linux и Mac OS X). Он работает в текстовом режиме, что делает его незаменимым для визуализации файловой системы и операций с файлами на удалённой UNIX-системе не загружая SSH-соединение.

Для использования схемы необходимо следующее:
Читать дальше →

Хабраиндекс для статей по программированию под Android

Reading time2 min
Views95K
Читать дальше →

Как не продать машину

Reading time4 min
Views1.5K
Заметка навеяна постом Помогите, а то я скоро сойду с ума (реальная история, реальной разработки проекта), затем была опубликована как комментарий, а теперь, по просьбам, и как топик.

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

И так, как же разработать стартап лучше?

Пошаговый план эффективного запуска первой версии:

Читать дальше →

Information

Rating
Does not participate
Location
США
Registered
Activity