
Краковецкий Александр @sashaeve
CEO DevRain
Трудности поиска ошибок в научных приложениях
6 min
1.8KЭто продолжение заметки о том, почему юнит-тесты плохо работают в научных приложениях; и в этой статье я хочу рассказать о трудностях поиска ошибок и дебага (научных приложений), с которыми в свое время столкнулся, и многие из которых были удивительными для меня как веб-разработчика.
+37
Конкурс для IT-журналистов
1 min
856
Дорогой хабраюзер!
Ты автор топовых постов, о тебе слагают легенды, твоё мнение — новый взгляд на происходящее. А, может, ты журналист?
Спешим сообщить, что мы совместно с РОЦИТ учредили премию в области IT-журналистики. Возможно, ты уже слышал об этом на прошедшей конференции РИФ+КИБ.
Каждый журналист общественно-политических изданий, работающих с темами электронной коммерции, IT, программного обеспечения, может стать лауреатом Премии.
-3
«Халява» глазами преподавателя
3 min
24KЕще будучи студентом, я услышал от одного из преподавателей интересную мысль, которая заставила меня задуматься о пользе халявы для студента. Этот «полу-преподаватель» особо не заморачивался обучением студентов, получить у него зачет было проще простого, студенты его обожали. А зря. Его философия была следующей: «чем меньше студенты знают, тем больше мне цена, как специалисту».
+43
Покажи мне свои настройки, и я скажу, кто ты
5 min
3.6KДобрый день, уважаемые хабравчане! Продолжаю радовать вас уникальными статьями по пользовательским интерфейсам с живыми примерами на русском языке. Сегодня мы будем обсуждать серебряную пулю разработки программного обеспечения — настройки приложений.
Что такое настройки, все себе более или менее представляют. Любой пользователь компьютера рано или поздно с ними сталкивается. Только не всегда победителем из этого столкновения выходит пользователь. Основных проблем, с которыми приходится иметь дело, три: нужную настройку трудно найти, нужной настройки нет, и не понятно, что делает та или иная настройка.
Чтобы разобраться, давайте задумаемся, откуда берутся настройки? Теоретически, настройки — это способ для разработчика приспособить программу под разные сценарии использования. Пользователи разные, одному нужно одно, другому другое, и если различия в сценариях незначительные, выбор между ними отдается на откуп пользователю. Отсюда следует, что чтобы сделать правильный экран настроек, надо знать цели и задачи пользователей. Это в теории. Что же происходит на практике?
Что такое настройки, все себе более или менее представляют. Любой пользователь компьютера рано или поздно с ними сталкивается. Только не всегда победителем из этого столкновения выходит пользователь. Основных проблем, с которыми приходится иметь дело, три: нужную настройку трудно найти, нужной настройки нет, и не понятно, что делает та или иная настройка.
Чтобы разобраться, давайте задумаемся, откуда берутся настройки? Теоретически, настройки — это способ для разработчика приспособить программу под разные сценарии использования. Пользователи разные, одному нужно одно, другому другое, и если различия в сценариях незначительные, выбор между ними отдается на откуп пользователю. Отсюда следует, что чтобы сделать правильный экран настроек, надо знать цели и задачи пользователей. Это в теории. Что же происходит на практике?
+112
Стив Джобс о флеш-технологии. Прикладная риторика
9 min
6.1K
Метод аргументации, который используется в этом письме, может служить хорошим сборником софизмов. Мне показалось странным, что тексты такого уровня содержат почти классические примеры уловок.
Софи́зм (от греч. σόφισμα, «мастерство, умение, хитрая выдумка, уловка, мудрость») — ложное умозаключение, которое, тем не менее, при поверхностном рассмотрении кажется правильным.
Исторически с понятием «софизм» неизменно связывают идею о намеренной фальсификации. Задача софиста — представить наихудший аргумент как наилучший путём хитроумных уловок в речи, в рассуждении, заботясь не об истине, а об успехе в споре или о практической выгоде.
Главная цель ритора — не раскрытие истины, но чёткость и убедительность при помощи вероятного (εἰκός), для чего чрезвычайно полезны всякие софизмы.
В своём эссе Джобс выдвигает следующий тезис:
Apple блокирует флеш не по бизнес-мотивам, защищая свой App Store, а по причинам технологического характера
I wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads. Adobe has characterized our decision as being primarily business driven – they say we want to protect our App Store – but in reality it is based on technology issues.
Посмотрим, какие доводы он приводит в доказательство этого тезиса.
+191
Приложения iPhone с открытым кодом
4 min
31K
+105
Стандартный программист
3 min
17KПримерно неделю назад принимал участие в конкурсе на открытую вакансию Microsoft. И провалился. Прошла неделя, мысли в голове (как же так? не может быть!) немного улеглись и я сделал некоторые выводы из этого опыта, коими и хочу поделиться с хабражителями.
+296
Общение с технической поддержкой хостеров
11 min
8.3KЭту статью я пишу как сотрудник небольшой хостинговой компании. Всё написанное в статье — не мнение компании, а моё мнение как сотрудника техподдержки в целом. Многое из написанного — опыт моих коллег из других компаний. Вероятно, для некоторых, пишу вполне очевидные вещи. Тем не менее, очень часто я встречаю негатив на форумах (что греха таить — и на хабре тоже) относительно работы техподдержки какого-либо хостера. Эта заметка позволит избежать неприятных ситуаций в общении с нами, да и просто ответит на некоторые вопросы «почему так, а не иначе?»
Оговорюсь сразу, что мне не попадались клиенты, общение с которыми напоминало бы великий звонок в техподдержку стрима — все наши клиенты адекватны. Можно сказать, что мой разум не замутнен ненавистью к пользователям. Никогда не приходилось нервничать на работе, после смены у меня всегда прекрасное настроение. Может быть, только спать хочется чуть сильнее, чем просто после ночи, проведенной перед монитором. Работаю я и днём и ночью — соответственно буду учитывать особенности и круглосуточной работы техподдержки.
Я не принимаю во внимание действительно «плохих» сотрудников. Для меня настоящий сотрудник техподдержки — молодой системный администратор в сферическом вакууме, опыт которого пока не позволяет стать админом. Про «блондинок» тоже упомяну.
UPD: В комментариях многие высказывают несколько странную точку зрения о статье. Это не прямая инструкция к действиям. Это набор советов, который поможет вам получить благожелательное отношение со стороны специалистов технической поддержки.
Так же не стоит путать техническую поддержку и справочную службу хостера в рамках этой статьи.
Оговорюсь сразу, что мне не попадались клиенты, общение с которыми напоминало бы великий звонок в техподдержку стрима — все наши клиенты адекватны. Можно сказать, что мой разум не замутнен ненавистью к пользователям. Никогда не приходилось нервничать на работе, после смены у меня всегда прекрасное настроение. Может быть, только спать хочется чуть сильнее, чем просто после ночи, проведенной перед монитором. Работаю я и днём и ночью — соответственно буду учитывать особенности и круглосуточной работы техподдержки.
Я не принимаю во внимание действительно «плохих» сотрудников. Для меня настоящий сотрудник техподдержки — молодой системный администратор в сферическом вакууме, опыт которого пока не позволяет стать админом. Про «блондинок» тоже упомяну.
UPD: В комментариях многие высказывают несколько странную точку зрения о статье. Это не прямая инструкция к действиям. Это набор советов, который поможет вам получить благожелательное отношение со стороны специалистов технической поддержки.
Так же не стоит путать техническую поддержку и справочную службу хостера в рамках этой статьи.
+40
Всплывающие окна. Работа с UIPopoverController
4 min
6.8KTranslation
В iPhone SDK 3.2 было добавлено несколько новых элементов интерфейса, таких как UIPopoverController и UISplitViewController.
В этом посте я покажу как пользоваться UIPopoverController.
В этом посте я покажу как пользоваться UIPopoverController.
+12
Поступление в магистратуру Израиля
5 min
12KПрежде чем иностранный студент начнет учиться в магистратуре, предшествует долгий процесс поступления. Он включается в себя заполнения различных документов, сдача тестов (TOEFL, GRE), рекомендательные письма, мотивационное письмо и другое.
Как это происходит для магистратуры в Израиле?
Как это происходит для магистратуры в Израиле?
+6
Волшебное решето Эратосфена
4 min
75K
Наверняка все, кто читает этот пост не раз использовали, или хотя бы слышали о решете Эратосфена — методе отыскания простых чисел. Сама проблема получения простых чисел занимает ключевое место в математике, на ней основаны некоторые криптографические алгоритмы, например RSA. Есть довольно много подходов к данной задаче, но в этой статье я остановлюсь на некоторых модификациях самого простого из них — решета Эратосфена.
+65
Ричард Фейнман: Алгебра
1 min
10KНа этот раз знаменитый физик вспоминает свое детство, недоумение по поводу школьной системы образования и свои первые шаги в изучении математики.
На Хабре
(Оригинал ролика на английском языке)
+130
Советы по портированию iPhone-приложений на iPad
4 min
4.7KБуквально несколько дней назад мне пришлось портировать одно небольшое приложение с iPhone на iPad. В целом все прошло довольно безболезненно, но было несколько граблей, на которые я не преминул наступить. Поэтому хотелось бы представить несколько советов по упомянутому выше портированию. За основу взята эта небольшая статья, дополненная некоторыми моими собственными советами и замечаниями.
+24
Отладка EXC_BAD_ACCESS в Mac OS X и iPhone
2 min
35KПривет! В этой статье я постараюсь рассказать о том, как можно облегчить себе жизнь при отладке iPhone- и Mac-приложений. Речь пойдет об отладке исключения EXC_BAD_ACCESS, одного из самых неприятных в природе.
+23
Особенности работы CLR в .NET framework
8 min
103KНачиная изучать язык C# и .NEt Framework я ни как не мог понять, как же работает CLR. Я либо находил огромные статьи, которые не осилить за 1 вечер либо слишком краткое, скорее даже запутывающее описание процесса (как в книге Г. Шилдта).
Некоторое время назад я решил, что было бы неплохо собирать знания, полученные из книг, «фичи» и часто используемые приемы в одном месте. А то новая информация быстро оседает в голове, но также быстро забывается и спустя несколько недель приходится вновь рыться в сотнях и тысячах строк текста, чтобы найти ответ на вопрос. Читая очередную книгу по программированию, я делал краткие пометки самого важного, что мне показалось. Иногда описывал некоторый процесс понятным мне языком с придуманным примером и т.д. Я не претендую на абсолютную правильность излагаемого материала. Это всего лишь мое понимание процесса, с моими примерами и информацией, которую я посчитал ключевой для понимания Проработав некоторый материал, я решил сохранить это для всех тех, кому это может быть полезно. А кто уже знаком — тот просто освежит это в памяти.
Некоторое время назад я решил, что было бы неплохо собирать знания, полученные из книг, «фичи» и часто используемые приемы в одном месте. А то новая информация быстро оседает в голове, но также быстро забывается и спустя несколько недель приходится вновь рыться в сотнях и тысячах строк текста, чтобы найти ответ на вопрос. Читая очередную книгу по программированию, я делал краткие пометки самого важного, что мне показалось. Иногда описывал некоторый процесс понятным мне языком с придуманным примером и т.д. Я не претендую на абсолютную правильность излагаемого материала. Это всего лишь мое понимание процесса, с моими примерами и информацией, которую я посчитал ключевой для понимания Проработав некоторый материал, я решил сохранить это для всех тех, кому это может быть полезно. А кто уже знаком — тот просто освежит это в памяти.
+7
10 бесценных жизненных советов, которые дает нам Альберт Эйнштейн
4 min
56KTranslation
Интересная на мой взгляд статья, которая показывает, что одни и те же принципы никогда не устаревают. Конечно, все они уже часто проскакивали в той или иной форме на множестве ресурсов, но мне бы хотелось предложить вам их видение Ученым с большой буквы, Альбертом Эйнштейном.
+144
Числа Фибоначчи и золотое сечение
1 min
4.2KНа Хабре я уже писал про числа Фибоначчи и золотое сечение. Но не смог удержаться, чтобы не выложить новое видео с новыми примерами этого чуда во многих областях нашей жизни.
+97
Базы данных. Конфликты параллельного доступа (Часть 1 — поиск проблемы)
4 min
15KУважаемые коллеги, в данной статье будем рассматривать не виды блокировок в SQL, а способы решения проблем, когда обращаемся к одним и тем же данным из разных подключений, и часть обновлений при этом может быть потеряна. Статья не зависит от конкретной базы данных и может быть одинаково интересна многим.
Всегда может быть такая ситуация, когда в одном соединении мы прочитали какие-то записи, а затем попытались их обновить. Но за момент, пока мы их редактировали, а затем попытались сохранить, в другом соединении эти же записи уже были обновлены. Иначе говоря, первый процесс читает данные, после чего те же данные читает второй процесс, и второй процесс обновляет эти же данные до того, как это сможет сделать первый процесс, то возникнет конфликт, когда первый процесс попытается обновить эти данные.
Если к базе данных обращаться из нескольких соединений и проводить изменения, то возникновение конфликтов — это лишь вопрос времени и везения.
Приложение само должно решать, какие действия ему необходимо сделать, чтобы решить этот конфликт. Например, ситуация может быть такая: администратор сайта зашел на страницу, отображающую данные обычного пользователя (администратор имеет возможность обновлять эти данные).Если после того, как страница администратора прочитает пользовательские данные из базы, и обычный пользователь обратиться к странице, отображающую его пользовательские данных, и внесет измения, то возникнет конфликт, когда администратор сохранит свои изменения. Если же конфликт не возникнет — то изменения обычного пользователя будут перекрыты и потеряны. Может быть и иначе — изменения администратора потеряны. Какое поведение должно быть верным в каждом конкретном случае — это и есть сложная проблема. Первый шаг — обнаружить её. Второй — разрешить. Есть два базовых подхода к разрешению конфликтов параллельного доступа — оптимистичный и пессимистичный.
Всегда может быть такая ситуация, когда в одном соединении мы прочитали какие-то записи, а затем попытались их обновить. Но за момент, пока мы их редактировали, а затем попытались сохранить, в другом соединении эти же записи уже были обновлены. Иначе говоря, первый процесс читает данные, после чего те же данные читает второй процесс, и второй процесс обновляет эти же данные до того, как это сможет сделать первый процесс, то возникнет конфликт, когда первый процесс попытается обновить эти данные.
Если к базе данных обращаться из нескольких соединений и проводить изменения, то возникновение конфликтов — это лишь вопрос времени и везения.
Приложение само должно решать, какие действия ему необходимо сделать, чтобы решить этот конфликт. Например, ситуация может быть такая: администратор сайта зашел на страницу, отображающую данные обычного пользователя (администратор имеет возможность обновлять эти данные).Если после того, как страница администратора прочитает пользовательские данные из базы, и обычный пользователь обратиться к странице, отображающую его пользовательские данных, и внесет измения, то возникнет конфликт, когда администратор сохранит свои изменения. Если же конфликт не возникнет — то изменения обычного пользователя будут перекрыты и потеряны. Может быть и иначе — изменения администратора потеряны. Какое поведение должно быть верным в каждом конкретном случае — это и есть сложная проблема. Первый шаг — обнаружить её. Второй — разрешить. Есть два базовых подхода к разрешению конфликтов параллельного доступа — оптимистичный и пессимистичный.
+3
LINQ to SQL и конфликты параллельного доступа
14 min
7.3KВ первой части статьи мы изучили то, каким образом можно найти конфликт параллельного доступа и возможные способы их решения.
Вторая часть статьи посвящена решению этого конфликта, при использовании LINQ to SQL.
Во второй части статьи рассмотрено, как решать конфликты параллельного доступа в LINQ to SQL, и причины появления ChangeConflictException при попытке обновления записей, способы решения.
Вторая часть статьи посвящена решению этого конфликта, при использовании LINQ to SQL.
Во второй части статьи рассмотрено, как решать конфликты параллельного доступа в LINQ to SQL, и причины появления ChangeConflictException при попытке обновления записей, способы решения.
+19
Information
- Rating
- Does not participate
- Location
- Киев, Киевская обл., Украина
- Date of birth
- Registered
- Activity