Здравствуйте, уважаемое сообщество! Недавно на Хабре проскакивала неплохая обзорная статья о разных алгоритмах поиска подстроки в строке. К сожалению, там отсутствовали подробные описания каких либо из упомянутых алгоритмов. Я решил восполнить данный пробел и описать хотя бы парочку тех, которые потенциально можно запомнить. Те, кто еще помнит курс алгоритмов из института, не найдут, видимо, ничего нового для себя.
Пользователь
Правила полёта из личных наблюдений
6 min
187KДорогой Хабр!
Почему пост в хабе фриланс? Потому что поездки и путешествия нередко являются частью быта фрилансера.
Так получилось, что с самолётами, а точнее с полётами на них, я дружу давно. Совершаю с десяток поездок в год на этом виде транспорта. В связи с этим, накопились некоторые наблюдения. Может быть примитивные, но успешно применяемые на практике. К тому же близится время зимнего отдыха, поэтому актуальность темы присутствует.
Почему пост в хабе фриланс? Потому что поездки и путешествия нередко являются частью быта фрилансера.
Так получилось, что с самолётами, а точнее с полётами на них, я дружу давно. Совершаю с десяток поездок в год на этом виде транспорта. В связи с этим, накопились некоторые наблюдения. Может быть примитивные, но успешно применяемые на практике. К тому же близится время зимнего отдыха, поэтому актуальность темы присутствует.
+27
Ликбез по типизации в языках программирования
12 min
514KЭта статья содержит необходимый минимум тех вещей, которые просто необходимо знать о типизации, чтобы не называть динамическую типизацию злом, Lisp — бестиповым языком, а C — языком со строгой типизацией.
В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
+225
По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет?
10 min
175KTranslation
Добрый день, Хабр!
Мой предыдущий перевод статьи про аппаратное ускорение в Android вызвал бурное обсуждение в комментариях, основным мотивом которого был вопрос «так почему же тормозит Android?». Аналогичная ситуация наблюдается по всему интернету, и потому я привожу ниже еще один очень интересный и свежий перевод (снова из Google+), где автор Andrew Munn (о нем ниже) анализирует настоящие причины тормозов Android. С удовольствием прочитал этот пост сам и горд возможностью первым поделится им с хабрасообществом.
+182
Что я постиг в программировании
5 min
11KTranslation
Я программирую уже более 30 лет. И мой путь в программировании тянется от микропроцессоров Z80 и 6502 до современных машин, от таких языков программирования как BASIC, assembly, C, C++ до Tcl, Perl, Lisp, ML, occam или arc, Ruby, Go и проч.
Вот список того, что я постиг в программировании:
0. Программирование удел ремесленника, а не ученого или инженера
Программирование больше походит на ремесло нежели на науку или инженерную дисциплину. Это комбинация навыков и опыта выраженная в умении применять инструменты. Ремесленник выбирает необходимые инструменты(а если требуется, то создает свои) и учится применять их.
По мне так это ремесло. Я считаю, что лучшие программисты ближе скорее к часовщикам нежели к строителям мостов или физикам. Конечно, с виду это занятие напоминает науку или инженерное дело всилу использования логики и математики, но в большинстве случаев ты просто берешь инструменты в руки и что-то создаешь.
Вот список того, что я постиг в программировании:
0. Программирование удел ремесленника, а не ученого или инженера
Программирование больше походит на ремесло нежели на науку или инженерную дисциплину. Это комбинация навыков и опыта выраженная в умении применять инструменты. Ремесленник выбирает необходимые инструменты(а если требуется, то создает свои) и учится применять их.
По мне так это ремесло. Я считаю, что лучшие программисты ближе скорее к часовщикам нежели к строителям мостов или физикам. Конечно, с виду это занятие напоминает науку или инженерное дело всилу использования логики и математики, но в большинстве случаев ты просто берешь инструменты в руки и что-то создаешь.
+69
Почему объектно-ориентированное программирование — это отстой
5 min
29KКогда я первый раз услышал об объектно-ориентированном программировании — сразу отнёсся к нему скептически. Честно говоря, даже не знаю, почему. Просто оно показалось мне каким-то неправильным. Но ООП очень быстро стало популярным (почему — я объясню ниже) и критика в его адрес превратилась в этакую «ругань в церкви». А объектно-ориентированность стала обязательной составляющей любого уважаемого языка программирования.
С ростом популярности Erlang часто стали задавать вопрос «— А Erlang — объектно-ориентированный?». Правильный ответ был бы «— Да что вы, нет!». Но мы не могли так заявлять в полный голос, поэтому пришлось выкручиваться. Мы придумали несколько достаточно нетривиальных ответов, которые бы представляли Erlang типа-объектно-ориентированным языком (для тех, кто больше всего тянет руку с этим вопросом), но при этом и не объектно-ориентированным для тех, кто на самом деле в теме.
С ростом популярности Erlang часто стали задавать вопрос «— А Erlang — объектно-ориентированный?». Правильный ответ был бы «— Да что вы, нет!». Но мы не могли так заявлять в полный голос, поэтому пришлось выкручиваться. Мы придумали несколько достаточно нетривиальных ответов, которые бы представляли Erlang типа-объектно-ориентированным языком (для тех, кто больше всего тянет руку с этим вопросом), но при этом и не объектно-ориентированным для тех, кто на самом деле в теме.
+5
Почему программирование — хороший способ выражения малопонятных и туманно сформулированных идей
14 min
5.9KВ предисловии к первому изданию замечательной книги «Структура и Интерпретация Компьютерных Программ» (SICP) авторов Харольда Абельсона и Джеральда Джей Сассмана, есть цитата из статьи Марвина Минский «Почему программирование — хороший способ выражения малопонятных и туманно сформулированных идей.» Цитата короткая, а полная публикация на русском языке мне не попадалась.
Ниже вы можете ознакомится с переводом этой статьи, и хотя написана она довольно давно, всё равно интересно ознакомится с мыслями такого человека как Марвин Минский, оригинальную статью можно найти здесь.
Ниже вы можете ознакомится с переводом этой статьи, и хотя написана она довольно давно, всё равно интересно ознакомится с мыслями такого человека как Марвин Минский, оригинальную статью можно найти здесь.
+34
Наполовину пустой стакан
4 min
8.3KTranslation
На Хабре уже упоминалась новая рубрика What if Рендела Манро (xkcd). Каждый вторник он отвечает на разные дурацкие вопросы читателей с точки зрения законов физики. Ниже перевод одного из выпусков.
Что, если внезапно стакан станет буквально наполовину пустым?
—Витторио Иаковелла
Как выяснится далее, пессимист в данном случае окажется прав. Когда говорят «стакан наполовину пуст» обычно имеют ввиду, что стакан содержит поровну воды и воздуха.
Считается, что оптимисту стакан кажется наполовину полным, тогда как пессимист находит его наполовину пустым. Эта притча породила целую кучу шутливых вариаций (инженер видит стакан, который спроектирован с двукратным запасом емкости; сюрреалист видит жирафа, жующего галстук и т.п.)
Что, если внезапно стакан станет буквально наполовину пустым?
—Витторио Иаковелла
Как выяснится далее, пессимист в данном случае окажется прав. Когда говорят «стакан наполовину пуст» обычно имеют ввиду, что стакан содержит поровну воды и воздуха.
Считается, что оптимисту стакан кажется наполовину полным, тогда как пессимист находит его наполовину пустым. Эта притча породила целую кучу шутливых вариаций (инженер видит стакан, который спроектирован с двукратным запасом емкости; сюрреалист видит жирафа, жующего галстук и т.п.)
+151
10 признаков сайта, заслуживающего доверие
5 min
34KЭто адаптативный перевод статьи. Оригинал находится по ссылке: «10 Signs of a Trustworthy Website».
В Интернете находятся миллионы сайтов. Надежность некоторых из них не вызывает сомнений: к примеру, если речь идет об Интернет-магазине Macy’s или о новостном портале BBC. Но сколько раз в поисках определенного продукта или сервиса вы сталкивались с компаниями, о которых никогда раньше не слышали? И сколько раз вы задумывались: безопасно ли иметь с ними дело?
Можно поспорить, что в большинстве случаев вы принимали решение, опираясь исключительно на сайт компании как таковой. Вы не звонили друзьям и не читали отзывы на сайтах типа Yelp (хотя это может быть очень полезным). В конечном итоге, просмотрев сайт, вы либо закрывали его в поисках другого ресурса, либо принимали решение о покупке продукта или заказе услуги – ведь так? Я сам делал так не один раз.
Почему? Чем мы руководствуемся?
0
Как я сам научился программировать за 8 недель
3 min
568KДля многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.
Я начал изучать программирование в начале этого года, и могу сказать по своему опыту, что изучение достаточного количества материала, чтобы создать свой собственный прототип не такая уж и сложная задача, как вам кажется. В самом деле, если вы хотите иметь рабочий прототип в течение двух месяцев, не прибегая к использованию отгулов, это абсолютно выполнимая задача.
Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
Я начал изучать программирование в начале этого года, и могу сказать по своему опыту, что изучение достаточного количества материала, чтобы создать свой собственный прототип не такая уж и сложная задача, как вам кажется. В самом деле, если вы хотите иметь рабочий прототип в течение двух месяцев, не прибегая к использованию отгулов, это абсолютно выполнимая задача.
Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
+47
Расставляем точки на Li: Нужна ли тренировка литиевых аккумуляторов?
7 min
758KПрошло уже достаточно времени с тех времен, когда Ni-Cd и Ni-Mh аккумуляторы безраздельно властвовали в мобильных устройствах, но с самого начала эпохи Li-ion и Li-pol все не утихают споры по поводу того, надо ли «тренировать» эти аккумуляторы сразу после покупки.
Доходит до смешного, в теме обсуждения ZP100 на china-iphone всем новичкам рекомендовали в приказном тоне пройти 10 циклов зарядки-разряда, а только потом приходить с вопросами о аккумуляторах.
Давайте попробуем разобраться, имеет ли такая рекомендация право на жизнь, или это рефлексы спинного мозга (за отсутствием головного, наверное) некоторых индивидуумов, у которых они остались со времен никелевых батарей.
Доходит до смешного, в теме обсуждения ZP100 на china-iphone всем новичкам рекомендовали в приказном тоне пройти 10 циклов зарядки-разряда, а только потом приходить с вопросами о аккумуляторах.
Давайте попробуем разобраться, имеет ли такая рекомендация право на жизнь, или это рефлексы спинного мозга (за отсутствием головного, наверное) некоторых индивидуумов, у которых они остались со времен никелевых батарей.
+284
IEC60027-2: Давайте использовать стандарты, или 1024 B == 1 KiB && 1024 B != 1 KB && 1000 B == 1 kB
5 min
130KДоброго времени суток, уважаемые!
В последнее время, читая различные статьи в хабре, всё больше стал замечать, что многие авторы до сих пор ничего не знают о ISO/IEC стандартах бинарных префиксов (KiB=кибибайт, MiB=мебибайт и т.д.) и постоянно путают их с SI префиксами (kB=килобайт, MB=мегабайт). Поэтому я решил ещё раз заговорить об этом в надежде, что, прочитав статью, ещё пара человек начнёт пользоваться стандартами!
+171
Фотографии рабочих мест хабровчан
1 min
272KПродолжаю подборку фотографий (один, два, три, четыре, пять) рабочих мест и домашних офисов. Все мы помним балконный офис Boomburum, а где обитают другие пользователи Хабра? В этой подборке собраны фотографии, присланные хабровчанами.
dlinyj прислал сразу несколько рабочих мест, в том числе «деревенское»:
dlinyj прислал сразу несколько рабочих мест, в том числе «деревенское»:
+82
Как сделать рабочий стол, или аутсорсинг решает
3 min
275KХабраюзер любит темы про домашние рабочие места, поэтому покажу и я свое, свежеиспеченное.
Топик отношу к DIY – потому как все здесь сделано для меня, благодаря мне и для меня. БОльшая часть «работ» была отдана профессионалам, и это не потому что я «такой уж рукожопый» (хотя и это присутствует), а потому что я хочу пользоваться вещами, удовлетворяющими моим требованиям. А сделать такие самостоятельно – будет очень долго, нервно, муторно => дорого (да и не факт, что получится).
Собственно говоря, руководствуясь этим правилом в последнем ремонте ничего мною лично и не делалось.☺
Топик отношу к DIY – потому как все здесь сделано для меня, благодаря мне и для меня. БОльшая часть «работ» была отдана профессионалам, и это не потому что я «такой уж рукожопый» (хотя и это присутствует), а потому что я хочу пользоваться вещами, удовлетворяющими моим требованиям. А сделать такие самостоятельно – будет очень долго, нервно, муторно => дорого (да и не факт, что получится).
Собственно говоря, руководствуясь этим правилом в последнем ремонте ничего мною лично и не делалось.☺
+132
Черногория — не Таиланд
11 min
432KТак получилось, что последние пять месяцев я работаю и проживаю в Черногории. Раньше я жил в московской области, работал инженером-руководителем в небольшой, но успешно российской компании и как многие другие задумывался иногда о лучшей жизни. Лучшая жизнь в моем понимании выглядела в виде небольшого домика в горах, недалеко от моря в месте где всегда хорошая погода, дружелюбные люди, хорошая экология и размеренная жизнь. Но дорога к лучшей жизни выглядела трудной — 20 лет ипотеки на квартиру в Москве, потом 10 лет накоплений на домик в горах, поэтому когда появился шанс пропустить все это и сразу попробовать мечту, то я не сомневался.
Прошло уже достаточно времени, чтобы немного разобраться в черногорской реальности, но все еще сохраняется контакт с родиной и свежесть восприятия, поэтому надеюсь что мои наблюдения можно считать вполне объективными. Сразу скажу что жизнь в Черногории в умеренных дозах (несколько месяцев) может быть терапевтической процедурой для жителя почти любого российского мегаполиса. Дальше возникает развилка — либо кажется что попал в болото, либо, как Владимир Высоцкий — обретаешь еще одну родину. Но оставим лирику для личных блогов и посмотрим на ситуацию глазами фрилансеров. Я взял за основу интересный пост про Таиланд и решил сравнить с со своими впечатлениям. В Таиланде я был туристом и понимаю что автор хоть и перегибает палку, но многие вещи излагает адекватно.
+224
27+ ресурсов для онлайн-обучения
5 min
970KВ настоящее время активно развивается система дистанционного обучения, теперь уже не является проблемой получение полноценного образования практически по любому предмету дистанционно. Онлайн-обучение имеет ряд преимуществ – обучение в индивидуальном темпе, свобода и гибкость, доступность, социальное равноправие. В сети появляется все больше сервисов, помогающих получать новые знания.
Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.
+152
Алгоритмы и структуры данных — шпаргалка
1 min
200KПару недель назад, необходимо было освежить информацию в голове информацию по структурам данных и алгоритмам для собеседования. Первым делом полез на www.coursera.org, где хотел пробежаться по некоторым лекциям курса Алгоритмы, там же были две сводные таблички, которые в процессе изучения курса взял на заметку — отлично помогали запомнить сложность операций. Но, к моему удивлению, материалы пройденного курса стали недоступны. Быстрое гугление, в надежде, что кто-нибудь выложил лекции на торрентах, к сожалению, не дало результатов. В итоге, я нашел полную коллекцию слайдов по данному курсу. Спешу поделиться. Самое главное, что взял из этих слайдов, — это вышеупомянутые сводные таблички. Думаю многим пригодится.
+46
Литдетектив: «дождливые» идиомы в английском
4 min
60KTutorial
Из всех английских идиом именно «дождливые» кажутся русскому человеку полной бессмыслицей: тяжело понять на первый взгляд, отчего «у них» во время ливня с неба падают животные разной степени экзотичности и опасные для жизни предметы. It’s raining cats and dogs, it rains pitchforks and stair-rods – происхождение этих фраз туманно, как сам Альбион. И у каждой, как у достойного английского анекдота, своя изюминка.
Начнём с самого тяжёлого случая – с «cats and dogs». Британскиеучёные этимологи до сих пор не уверены, что это такое – удачный словесный пируэт XVIII века, описание глобального природного катаклизма или же попытка отразить в шуточно-лаконичной форме завывания бунтующей стихии.
Начнём с самого тяжёлого случая – с «cats and dogs». Британские
+80
Как не стать бедным IT-шником из-за ошибки перевода
3 min
204KЭто пост написан по следам постов Что нужно делать смолоду или как стать богатым айтишником и Как стать богатым айтишником — продолжение от другого автора.
Не подумайте, что я собираюсь учить Вас тому, как стать богатым. Я просто расскажу одну историю, связанную с идеями, которые авторы высказали в этих постах, а выводы Вы сделаете сами. Кому лень читать, то может увидеть смысл всей моей истории на рисунке выше.
+154
Результаты теста «Договориться можно обо всем»
3 min
18KДобрый день, уважаемые посетители Хабра.
Два дня назад я разместил на Хабре пост “Договориться можно обо всём”.
В нем Вашему вниманию предлагался электронный тест по одноименной книге Гэвина Кеннеди. Пост явно пришелся по вкусу многим читателям Хабра и попал на первую страницу «лучшее за 24 часа», а теперь занимает достойное место в лучшем за неделю. На момент подготовки данных для этого поста, кнопка “Результат” в тесте была нажата более 17.700 раз. Я проанализировал все собранные результаты, и выявил некоторые закономерности в полученных данных, которыми теперь хочу поделиться с Вами.
Два дня назад я разместил на Хабре пост “Договориться можно обо всём”.
В нем Вашему вниманию предлагался электронный тест по одноименной книге Гэвина Кеннеди. Пост явно пришелся по вкусу многим читателям Хабра и попал на первую страницу «лучшее за 24 часа», а теперь занимает достойное место в лучшем за неделю. На момент подготовки данных для этого поста, кнопка “Результат” в тесте была нажата более 17.700 раз. Я проанализировал все собранные результаты, и выявил некоторые закономерности в полученных данных, которыми теперь хочу поделиться с Вами.
+73
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity