Как стать автором
Обновить
20
0

Пользователь

Отправить сообщение

Решение вопроса с паролями — раз и навсегда

Время на прочтение3 мин
Количество просмотров17K


Эта статья выросла из одного обстоятельного комментария. За идеи, описанные там, меня поблагодарили несколько человек в реале — поэтому было решено оформить их в топик.

Итак, как же легко и ненапряжно создавать и использовать уникальные и криптостойкие пароли для каждого сайта, на котором довелось заводить аккаунт? Как сделать так, чтобы через 3 года забвения, обнаружив свой покрытый мхом аккаунт, вы не задумываясь залогинились, введя уникальный для этого сайта 15-символьный пароль, состоящий из не поддающегося анализу набора букв и цифр?

Я пользуюсь этой системой уже почти год, придумав ее после взлома моего аккаунта в соц. сети — и с удовольствием поделюсь с заинтересовавшимися
под катом.
Всего голосов 170: ↑124 и ↓46+78
Комментарии207

Как построить Open Source сообщество

Время на прочтение7 мин
Количество просмотров4.3K
Сообщество жизненно важно любому проекту Open Source. Активное и живое сообщество явлется сердцем проекта. Однако, писать код под свободной лицензией не достаточно для привлечения пользователей и разработчиков к построению сообщества. В этой статье рассматривается то, что позволяет выстроить успешное сообщество OpenSource.
Читать дальше →
Всего голосов 67: ↑61 и ↓6+55
Комментарии11

Все о String.intern()

Время на прочтение4 мин
Количество просмотров121K
Думаю, что многие Java-разработчики знают или хотя бы слышали о методе String.intern(). Но далеко не каждый использует его в своих приложениях или представляет в каких случаях он полезен и полезен ли вообще. Так было и со мной до тех пор пока я не столкнулся с этим методом в одном из проектов. В тот момент я захотел узнать смысл и особенности его использования и набрел на одну весьма интересную статью ведущего разработчика Yahoo! по имени Ethan Nicholas, переводом которой теперь хочу поделиться с той частью Хабра-сообщества, которая не безразлична к языку Java.

Тем, кто знает об этом методе лишь понаслышке, добро пожаловать под кат.
Читать дальше →
Всего голосов 56: ↑49 и ↓7+42
Комментарии33

Тайм-менеджмент: эволюция

Время на прочтение1 мин
Количество просмотров22K
Года два назад я решил заняться тайм-менеджментом, так как мне казалось, что я живу крайне неэффективно и такими темпами никогда «не приду к успеху». Я прочитал несколько книжек и бесчисленное множество статей от доморощенных гуру тайм-менеджмента разной степени пришибленности. Я даже разработал собственную методику, включавшую в себя аспекты из нескольких систем, и написал специальный софт, так как всё, что имелось на рынке, было слишком жалким и недостойным моего внимания.

И только сейчас, когда 11 часов в день я трачу на работу, и реально свободное время появляется только в выходные, я понял, какая это всё хрень. Теперь я убеждён, что люди, которые занимаются тайм-менеджментом — банальные бездельники, которым просто некуда девать своё время. Они не находят для него лучшего применения, чем рисовать всякие хитровыкрученные схемки и вести десяток отдельных блокнотиков для дел типа «почистить зубы» и «пообедать». Их мозг изнывает от безделья, и они занимают его псевдонаучной жвачкой, которая даёт иллюзию продуктивной жизни.

Вы хотите жить эффективно? Устройтесь на работу с полным графиком, поступите в аспирантуру, начните ходить в спортзал и делать зарядку по утрам. Если покажется мало, то возьмитесь за два-три сторонних проекта. Через пару месяцев случится одно из двух: либо вы сдохнете, либо самоорганизуетесь и уже никогда не будете забивать голову ерундой вроде тайм-менеджмента.
Всего голосов 311: ↑272 и ↓39+233
Комментарии111

О том, как я заставлял Ubuntu работать 10 часов от батареи

Время на прочтение11 мин
Количество просмотров193K
imageЯ являюсь рядовым линукс-пользователем и поэтому не стоит от этой статьи ожидать очень умных ходов или нестандартных программистских решений. Все по мануалам. Но раз результат достигнут, значит кому-то кроме меня это может оказаться полезным.

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

Устанавливал я Ubuntu 10.10 на ноутбук Acer Aspire Timeline 5810TG. Эта машина обладает экраном в почти 16 дюймов и относительно производительным железом, зато батарея достаточно емкая, чтобы ставить с ней личные рекорды.
Читать дальше →
Всего голосов 296: ↑285 и ↓11+274
Комментарии124

JBFD: декомпилятор из Brainfuck в Java

Время на прочтение2 мин
Количество просмотров4K
Кто-то когда-то сказал: «Возьмите несколько произвольных латинских букв, допишите перед ними J, и вы получите очередную Java-технологию». В этой статье речь пойдет о технологии JBFD, что означает Java BrainFuck Decompiler. Технология еще достаточно молодая (от силы 3 часа), так что не судите строго.

Идея создания декомпилятора возникла не случайно. Всему виной большое количество статей по BrainFuck в Интернете вообще и на Хабре в частности. Интерпретаторов этого замечательного языка существует огромное множество, но вот средств для отладки BF кода мне удалось найти крайне мало.

А что если преобразовать код с BF на свой «родной» язык и воспользоваться всеми преимуществами своей любимой IDE для обнаружения трудноуловимых ошибок, покрытия кода тестами, оптимизации и т.д.? Все это и много другое становится возможным с JBFD.
Читаем, скачиваем, пользуемся...
Всего голосов 14: ↑10 и ↓4+6
Комментарии10

Изучая Vaadin

Время на прочтение3 мин
Количество просмотров44K
Я хочу рассказать про Vaadin — фреймворк для разработки веб-приложений на Java. Да, на Java этих фреймворков — пруд пруди, но Vaadin заметно выделяется среди них.

Чем Vaadin отличается от других Java web фреймворков?


Если вкратце, Vaadin позволяет писать веб-приложение в стиле Swing:
import com.vaadin.ui.*;

public class HelloWorld extends com.vaadin.Application {

    public void init() { 
        Window main = new Window("Hello window"); 
        setMainWindow(main);
        main.addComponent(new Label("Hello World!")); 
    }
}

Считается преимуществом, при использовании Vaadin приходится программировать только на одном языке — Java, то есть не надо заморачиваться с XML, JavaScript, Html и т.д. и можно вовсю использовать весь мощный инструментарий Java: рефакторинг, юнит-тесты, заглушки (моки) и т.д. Ты пишешь new Label("Hello World!"), а Vaadin сам уже ломает голову, как это превратить в Html и JavaScript.

С чем можно сравнить Vaadin?
Всего голосов 53: ↑44 и ↓9+35
Комментарии51

Запрет нейростимуляторов заставит студентов честно конкурировать

Время на прочтение2 мин
Количество просмотров8K
Современная фармакология выпускает целую россыпь лекарств, улучшающих концентрацию внимания и краткосрочную память: риталин, аддералл и другие ноотропы. Эти медикаменты действительно эффективны и часто используются студентами во время подготовки к экзаменам. По официальным данным, в 2009 году аддералл принимали 6,4% всех американских студентов. Есть оценки, что в США до 60% учащихся принимают различные стимуляторы нервной системы (кроме кофеина). При таком масштабе употребления лекарств получается, что современные показатели успеваемости в американских университетах можно назвать результатом химического воздействия.
Читать дальше →
Всего голосов 19: ↑14 и ↓5+9
Комментарии18

Unknown Language Rounds

Время на прочтение3 мин
Количество просмотров1K

Здесь пойдет речь немного не о том спортивном программировании, к которому многие привыкли. Недавно,
на Codeforces был проведен экспериментальный раунд Unknown Language Round #1.
На нем участникам было предложено решить несколько несложных задач (первая,
вторая, а вот и все
остальные
). Особенность раунда — задачи можно решать только на одном языке программирования, который
не известен участникам до начала раунда. Было анонсировано, что язык не является
mainstream языком. Иначе говоря, участникам предлагалось за 2.5 часа соревнования на скорость разобраться
в незнакомом языке и решить задачи на нем.

Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии16

Стереть нельзя восстановить

Время на прочтение9 мин
Количество просмотров65K
Две любопытные исследовательские статьи из разных концов планеты, опубликованные в Сети практически сразу друг за другом, дают существенно новый взгляд на криминалистические аспекты в работе SSD, или твёрдотельных устройств хранения данных, часто именуемых флэш-драйвами.
Внутренние механизмы работы SSD настолько существенно отличаются от традиционных накопителей на жёстких магнитных дисках, что криминалисты уже не могут опираться на нынешние технологии хранения данных в тех ситуациях, когда улики с носителей типа SSD фигурируют в судебных разбирательствах.
С другой стороны, фрагменты данных, хранимых в памяти флэш-драйвов, могут оказываться практически неуничтожаемыми.
Читать дальше →
Всего голосов 122: ↑109 и ↓13+96
Комментарии111

Кафе для фрилансеров

Время на прочтение5 мин
Количество просмотров10K
Последнее время я все больше работаю как фрилансер и одна неотвязная идея меня постоянно преследует. Она не совсем айтишная, для ее реализации нужен неслабый стартовый капитал, плюс реально выстрелить она может только в большом городе. Так как у меня нет знакомых миллионеров, готовых на рисковые предприятия, а идею, как было доказано не раз, продать невозможно — дарю ее всем желающим и надеюсь, что когда-то она будет воплощена. Я предлагал эту идею нескольким инвесторам, но похожа она не нашла ни у кого интереса. Может быть вы сможете дать ей жизнь?

Читать дальше →
Всего голосов 81: ↑61 и ↓20+41
Комментарии90

А вы вносите свой вклад?

Время на прочтение2 мин
Количество просмотров904
image
[Мой перевод предыдущей статьи Рафаэля]
Не знаю, как вы, но когда я только начал использовать свободное ПО, я был поражен, что мог пользоваться всеми этими программами бесплатно. И через несколько месяцев решил найти способ чем-нибудь отплатить. Это было 13 лет назад… и вплоть до сегодняшнего дня я все еще активный разработчик Debian :-)
Читать дальше →
Всего голосов 86: ↑74 и ↓12+62
Комментарии116

Эмулятор РАМ-машины

Время на прочтение3 мин
Количество просмотров11K

РАМ-машина — абстрактная вычислительная машина, обладающая полнотой по Тьюрингу, и принадлежащая классу регистровых машин. Она эквивалентна универсальной машине Тьюринга, при этом более наглядна и удобна в доказательстве корректности алгоритмов. В этом топике я расскажу, как она устроена и приложу ссылки на работающую имплементацию эмулятора РАМ-машины с некоторыми интересными примерами.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии17

Десять смертных грехов в оценке трудоёмкости разработки программного обеспечения

Время на прочтение6 мин
Количество просмотров52K

Введение


В этом топике я хочу представить вам, дорогие читатели, пересказ вебинара от человека, чьё имя не нуждается в представлении. Для того, чтобы изложить часовой вебинар в виде небольшого топика, мне пришлось значительно ужать комментарии автора, поэтому я сознательно не помечаю топик как «перевод». В этот раз Стив МакКоннелл решил поделиться с нами своим опытом в виде коротких тезисов, в которых он отражает самые страшные ошибки при оценке трудоёмкости разработки программного обеспечения. В 1998 году читатели журнала Software Development назвали Стива одним из самых влиятельных людей в индустрии разработки программного обеспечения на равне с Биллом Гейтсом и Линусом Торвальдсом. Стив — автор книги «Software Estimation. Demystifying The Black Art» — одной из самых популярных книг в области оценки трудоёмкости разработки ПО. Надо признаться, что вебинар был проведён относительно давно (июнь 2009 года), но информация, представленная там, совсем не устарела. Сам топик будет построен следующим образом. Заголовки будут достаточно точно переведены из презентации, которую показывал Стив, а в остальном я постараюсь отразить только основные мысли, чтобы не перегружать топик. Если кто-то посчитает, что ту или иную мысль я излагаю неправильно — милости прошу в комментарии, можно будет меня поправить.

Итак, поехали...
Всего голосов 116: ↑106 и ↓10+96
Комментарии27

Тренинг нестандартных поступков: как сделать работу продуктивнее

Время на прочтение4 мин
Количество просмотров40K
Тот факт, что нестандартные поступки помогают саморазвитию, думаю, далеко не новость для хабрасообщества и особенно для читателей блога GTD. В топике тема раскрывается несколько полнее, плюс есть примеры того, что стоит делать для того, чтобы хорошо себя чувствовать и легко работать со свежим умом и острым вниманием.

Чтобы хорошо работать, важно быть победоголиком (о чём регулярно упоминается в разных Success Stories и книгах по мотивации). Каждая победа — это доказательство себе своих сил, фиксация на дальнейший успех, улучшение настроения и состояния. А ещё — выстраивание новых нейронных связей и много-много развития.

Грубо говоря, это работает так: когда вы побеждаете, мозг запускает процессы стимуляции, закрепляя на низком уровне тенденцию к успеху.

Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии59

«Как доводить начатое до конца, если я …» или GTD и DISC для «нечайников»

Время на прочтение8 мин
Количество просмотров5.7K
image
В одном из предыдущих своих постов я пообещал продолжить тему о теории DISC для «нечайников». Сегодня очередной пост в эту сторону.
Наверное одним из ключевых моментов работы программиста, прожект-менеджера, да и вообще любого человека, как связанного с IT так и не связанного – это привычка, навык или умение доводить до конца начатые дела.
В этом посте мы разберёмся с этим вопросом.
Читать дальше →
Всего голосов 71: ↑66 и ↓5+61
Комментарии36

Наш рабочий процесс

Время на прочтение2 мин
Количество просмотров11K
Наша компания разрабатывает систему управления agile проектами TargetProcess. За несколько лет разработки мы попробовали очень много самых разных практик, и пришли к своему процессу, которому успешно следуем и особо не меняем уже полгода.

Так как всякий процесс имеет границы применения, начнем с контекста.

Контекст


  • Разработка одного большого веб-приложения силами 10-20 человек;
  • Продукту уже 6 лет;
  • Используемые технологии: С#, ASP.NET, NHibernate, ExtJS;

Весь процесс описывать долго и нудно, так что вот самые главные практики.

Не очень технические практики


Цикл.
Сначала мы использовали итерации, но отказались от них полтора года назад. Когда продукт набирает определенный вес, гораздо лучше иметь возможность выпустить релиз в любой момент времени, когда готова хотя бы одна новая фича. Так что все дружно перешли на Kanban. Сейчас мы можем выпустить любой бакфикс в течение дня. Новые публичные билды выходят примерно раз в неделю.
Читать дальше →
Всего голосов 38: ↑28 и ↓10+18
Комментарии17

Processing 1.0 и почти закон всемирного тяготения

Время на прочтение5 мин
Количество просмотров2.6K
О Processing я слышал давно, но посмотреть что это из себя представляет никак не доходили руки. И вот у меня появилась идея сделать свой мирок с гравитацией и силами(есть точки и вокруг них летают частицы). В дальнейшем можно это как-то красиво обыграть и сделать крутой скринсейвер. Прототип решено было изготовить при помощи виновника торжества, а именно Processing 1.0.7.
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии19

Знакомство с Processing 1.0

Время на прочтение4 мин
Количество просмотров115K
Цель написания этого топика — познакомить вас с замечательным языком Processing. Этот ЯП не может похвастать широкой функциональностью или богатыми выразительными средствами, но он способен предложить кое-что другое…
Читать дальше
Всего голосов 74: ↑71 и ↓3+68
Комментарии40

Scala + Processing – интересный способ выучить новый язык

Время на прочтение4 мин
Количество просмотров10K
Недавно мне довелось на собственном опыте убедиться: чтобы научиться применять какие-то новые технологии, недостаточно прочитать пару книг по теме, потому что без практики теория мгновенно улетучивается из головы.

Но что можно сделать такого интересного на Scala? На самом деле, выбор не слишком большой. Я как-то придумал небольшую тулзу, неспешно написал ее, и «забил». А через несколько месяцев, к своему стыду, гуглил синтаксис «for loop»…

Я решил, что дальше так дело не пойдет, и нужно найти какие-то небольшие проектики на основные возможности языка. Тут мне и пригодился Processing. Скучные учебные проекты он любому новичку (вроде меня) поможет превратить в визуальные инсталляции. А дальше можно выбрать, что покопать углубленно — например, генерацию фракталов, рендеринг частиц или визуализацию данных.

Я переписал на Scala и выложил на GitHub парочку примеров. На скрине как раз один из них — MSA Fluids. Заинтересовавшихся прошу под кат.

Читать дальше →
Всего голосов 56: ↑54 и ↓2+52
Комментарии16

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность