Pull to refresh
0
@Hast read⁠-⁠only

User

Send message

Пора заменить Python как язык для обучения

Reading time 3 min
Views 108K
В последние десять лет мой стандартный ответ на вопрос «с какого языка начинать знакомство с программированием?» был прост — Python. Теперь я меняю свою рекомендацию. Python все еще хороший язык. Он позволяет сфокусироваться на задаче и не волноваться об архитектурных заморочках. О штуках, которые опытные программисты считают важными, позабыв о том, каково это — быть абсолютным новичком. Сам язык растворяется на фоне, и вместо объяснения возможностей и философий, уроки посвящены генерации музыкальных звукорядов, вычислению расстояний на стадионе в зависимости от беговой дорожки, или написанию автоматического игрока в покер или ятцы.

И вот в один прекрасный день студент задаст невинный вопрос: «А как сделать так, чтобы симулятор покера был не в командной строке, а в окне, с кнопкой для выдачи следующих карт?»
Читать дальше →
Total votes 100: ↑61 and ↓39 +22
Comments 280

Блокировки и уровни изоляции транзакций InnoDB в MySQL

Reading time 5 min
Views 78K
Здравствуй, Хабр!
Предлагаю всем желающим вспомнить или познать суть блокировок движка InnoDB в MySQL.


КДПВ: deadlock в исполнении тропической фауны

Читать дальше →
Total votes 40: ↑37 and ↓3 +34
Comments 26

Кластерные и «обычные» индексы MySQL (InnoDB)

Reading time 5 min
Views 127K
Все мы помним хрестоматийное объяснение «что такое индексы в БД и как они облегчают задачи поиска нужных строк». Уверен, у большинства из вас перед глазами встаёт нечто подобное:

Некластерный индекс

И сразу становится очевидно, насколько меньше данных нужно перелопатить для поиска двух-трёх нужных строк. Гениально. Просто. Понятно.

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

Итак, что же такое кластерный индекс, чем он лучше некластерного, и как с ним обстоит дело у MySQL.
Читать дальше →
Total votes 90: ↑87 and ↓3 +84
Comments 33

Регистрируемся как частный предприниматель в Украине

Reading time 14 min
Views 116K
Осознав необходимость выхода из тени или же просто смены формы деятельности из наемного работника в самозанятого гражданина приходим к тому, что надо бы зарегистрироваться в качестве частного предпринимателя (ЧП, ИП, СПД ФОП). О том, как зарегистрироваться, какую форму налогообложения выбрать IT-шнику, сколько и куда платить читаем под катом. В конце так же приложен бонус «Как получить деньги под открытие от Центра занятости» (на оплату налогов на первое время), какие виды деятельности выбрать согласно КВЭДа, а так же несколько примеров типичных документов. Актуально только для Украины.
Читать дальше →
Total votes 86: ↑75 and ↓11 +64
Comments 98

Интересное интервью с Ларри Пейджем

Reading time 9 min
Views 73K
Привет, Хабр!

Наткнулся на интересное интервью с сооснователем Google Ларри Пейджем. Мне оно показалось очень занимательным, и я старался как мог переводя его на русский язык, чтобы поделиться им с вами. Перевод может быть не очень точным, прошу за это прощения. Для свободно англо-читающей аудитории в конце поста ссылка на источник, в оригинале естественно можно получить больше удовольствия от прочтения. Если что-то из интервью вам придётся не по вкусу или вы не согласны с тем что говорит Ларри — не спешите минусовать, подумайте о том, что я всего лишь перевел это для вас. Tim — это интервьюер. Ну, поехали:

Лари Пейдж

Tim: Google известна тем что поощряет своих сотрудников решать амбициозные задачи и делать большие ставки. Почему это так важно?
Larry Page: Я волнуюсь о том, что что-то серьёзно пошло не так с тем как мы управляем компаниями. Если вы читаете то что средства массовой информации пишут о нашей компании, или вообще о всей технологической индустрии — речь всегда идёт о конкуренции. Всё преподносится так как будто речь идёт о спортивном событии. Не легко найти примеры действительно впечатляющих вещей, которые были сделаны исключительно за счет конкуренции. Многие компании приходят в упадок со временем, потому что они имеют тенденцию делать в точности тоже что они делали раньше, всего лишь внося небольшие изменения. Это естественно для людей — заниматься чем-то в чем они точно уверены что не потерпят неудачу. Но просто постепенного улучшения недостаточно.
Таким образом огромная часть моей работы это сфокусировать людей на вещах, работая над которыми можно добиться чего-то более значимого чем просто постепенного улучшения существующего. Возьмём например Gmail. Когда мы выпустили её, мы были поисковой компанией — это был большой скачёк для нас выпустить почтовый сервис, не говоря уже о том что мы дали пользователям в сотню раз больше свободного места чем они могли получить где-либо еще. Это не что-то что могло бы произойти само собой если бы мы просто сосредоточились на постепенном улучшении.
Tim: Но вы же должны улучшать и ваши существующие продукты, верно?
Larry Page: Конечно. Но периодически, каждые несколько лет, вам следует работать над чем-то новым, что на ваш взгляд является поистине удивительным.
Tim: Теперь у вас есть отдельное подразделение называемое Google X, предназначенное для таких «moon-shot» проектов (прим. автора: не знал как это точно перевести поэтому так и оставил, здесь имеются ввиду революционные проекты вроде полётов на луну и т.п.), как например самоуправляемые автомобили. Почему вы решили что нужно учредить целый департамент для этого?
Larry Page: Я думаю нам необходимо делать прорывные вещи, а не просто улучшать то что есть и это касается всего нашего бизнеса. Но сейчас Google X делает вещи которые могут быть сделаны более независимо.
Знаете, у нас всегда есть такие споры: У нас есть все эти деньги, у нас есть все эти люди, так почему же мы просто не производим больше? Вы можете сказать что Apple делает очень небольшое кол-во вещей, и это довольно хорошо работает для них. Но я нахожу это неудовлетворительным. Я чувствую как много возможностей использования технологий для улучшения жизни людей сейчас существует в мире. В Google мы нацелены лишь на 0,1% от этих возможностей. А все вместе взятые технологические компании охватывают лишь около 1%. Это означает что 99% это возможности которые упускаются. Инвесторы всегда беспокоятся: «Ах, вы ребята собираетесь потратить слишком много денег на эти сумасшедшие вещи.» Но это как раз сейчас те самые захватывающие вещи — YouTube, Chrome, Android. Если вы не делаете что-то сумасшедшее значит то что вы делаете неправильно!
Tim: Но с другой стороны — первопроходцам всегда приходится не легко. Посмотрите что было с Xerox PARK, не похоже чтобы их фантастические инновации особо помогли самой корпорации.
Larry Page: PARC имела впечатляющую исследовательскую организацию и они внесли большой вклад в современные вычислительные технологии. Но они не были сосредоточены на получении прибыли от своих изобретений. А этого упускать нельзя. Возьмём к примеру компанию Tesla, которой я восхищаюсь. Они не просто сделали действительно инновационный автомобиль, а вероятно около 99% своих усилий потратили выясняя как сделать чтобы их продукт стал массовым и популярным и чтобы им действительно начали пользоваться. Когда я еще только рос, я хотел быть изобретателем. Но потом я понял что есть слишком много печальных историй о изобретателях, таких как Никола Тесла к примеру. Это удивительные люди, которые не имели большого влияния, по причине того что не превращали свои изобретения в бизнес.
Читать дальше →
Total votes 96: ↑77 and ↓19 +58
Comments 16

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

Reading time 1 min
Views 7.1K
Не успели 12 июля ввести хештеги на русском языке, как народ уже начал развлекаться. Уже на следующий день всем известное слово из трех букв возглавило список трендов. Те, кто не знает русского матерного языка, недоумевают и высказывают свои предположения:
@Marcience: what is #х*и actually? I notice it's been on trending for hours. Is it a chemical formula or anything else?
@Marcience: что такое вообще #х*и? Оно в трендах уже несколько часов. Это какая-то химическая формула или что?
После этого (в общем-то довольно логичного для иностранцев) вопроса пользователь @Marcience также моментально стала популярна:
@Marcience: Just because of asking what #х*и actually is.Russian people has been mentioning me since yesterday & it also raises my amount of followers
@Marcience: Я всего лишь спросила, что такое #х*и на самом деле. Русские вчера весь день упоминали меня и подняли мне число подписчиков
Однако потом ей все-таки объяснили:
@Marcience oh… its so bad word. forget about it. Russian people are crazy.
@Marcience о… это очень плохое слово. забудьте его. русские просто чокнутые.
Однако флешмоб продолжается. Теперь ретвитят сообщение автора @ihaveabomb, который своеобразно объясняет иностранцам значение непонятного для них слова:
@ihaveabomb: #Х*Й is the name of new russian nuclear bomb.
@ihaveabomb: #Х*Й — название новой русской ядерной ракеты.
Total votes 236: ↑165 and ↓71 +94
Comments 274

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

Reading time 1 min
Views 4.3K
Что должна сделать сеть корейских супермаркетов, чтобы заманить в нее корейских же трудоголиков? Конечно же расположить свои витрины прямо на станциях метро. А чтобы у компании не возникло никаких проблем с санитарными нормами, сделать витрины полностью виртуальными. В результате люди оформляют заказы прямо в подземке, ожидая прибытия электропоезда, а товары доставляются им домой курьером.

image

Читать дальше →
Total votes 142: ↑108 and ↓34 +74
Comments 95

Вы никогда не задумывались о происхождении стандартных обоев Windows XP?

Reading time 2 min
Views 66K
Одними из самых известных обоев, несомненно, является стандартное изображение Windows XP, на котором запечатлён блаженно расслабляющий вид зелёных холмов и более синее, чем синее небо. Эти обои — вероятно, одно из самых просматриваемых изображений всех времён — метко названы «Безмятежность». Поищите в Google изображения по слову «безмятежность», и первым результатом будут обои Windows.

Но у голландских пользователей Windows изображение названо «Ирландия», что ошибочно заставило многих поверить, что именно там была сделана фотография.



Вы когда-нибудь останавливались, чтобы задаться вопросом, где и кем была сделана эта фотография? На самом деле, изображение настолько чёткое, что вы, возможно, предполагали, что оно вообще ненастоящее.
Читать дальше →
Total votes 316: ↑268 and ↓48 +220
Comments 207

Git Rebase: руководство по использованию

Reading time 8 min
Views 790K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


Читать дальше →
Total votes 122: ↑121 and ↓1 +120
Comments 169

Пагинация в Doctrine — считаем количество записей с помощью SQL_CALC_FOUND_ROWS (MySQL)

Reading time 4 min
Views 14K

Предыстория


Не так давно, в связи с производственной необходимостью, я познакомился с замечательным фреймворком Symfony 2, в котором для работы с базой данных используется мощная популярная библиотека — Doctrine 2, включающая в себя два компонента: ORM (Object relational mapper) и DBAL (Database Abstraction Layer). ORM предоставляет приложению возможность общаться с базой данных на языке объектов, а DBAL, в свою очередь, представляет собой более низкоуровневый способ доступа к данным посредством написания запросов, основанный на php-библиотеке PDO. ORM предоставляет множество преимуществ при разработке сложных бизнес-приложений, но в то же время налагает и ряд ограничений, связанных с тем, что разработчику не приходится писать непосредственно SQL-запросы — ORM Doctrine предлагает свой собственный, объектно-ориентированный язык запросов, который преобразуется в привычный SQL уже за кадром. С одним из таких ограничений я и столкнулся, и хочу поделиться, каким образом я его успешно преодолел. Речь пойдёт о получении общего количества записей, возвращаемых запросом, если убрать из него ограничение LIMIT.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Comments 5

Курсоры в Mysql.

Reading time 6 min
Views 108K
По долгу службы мне пришлось сталкиваться с курсорами. Хотелось бы рассказать, что это такое и о некоторых особенностях работы с ними. Официальная документация тут — dev.mysql.com/doc/refman/5.1/en/cursors.html Википедия даёт такое определение курсору курсор:
Читать дальше →
Total votes 44: ↑40 and ↓4 +36
Comments 13

Основы масштабирования

Reading time 10 min
Views 62K
Прочитав в этом блоге о балансировке на стороне клиента, решил опубликовать свою статью, в которой описаны основные принципы масштабирования для web-проектов. Надеюсь, хабралюдям будет интересно почитать.

Основы масштабирования



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

Обычно о масштабировании начинают думать тогда, когда один
сервер не справляется с возложенной на него работой. С чем именно он не
справляется? Работа любого web-сервера по большому счету сводится к основному
занятию компьютеров — обработке данных. Ответ на HTTP (или любой другой) запрос
подразумевает проведение некоторых операций над некими данными. Соответственно,
у нас есть две основные сущности — это данные (характеризуемые своим объемом) и
вычисления (характеризуемые сложностью). Сервер может не справляться со своей
работой по причине большого объема данных (они могут физически не помещаться на
сервере), либо по причине большой вычислительной нагрузки. Речь здесь идет,
конечно, о суммарной нагрузке — сложность обработки одного запроса может быть
невелика, но большое их количество может «завалить» сервер.

Читать дальше →
Total votes 68: ↑67 and ↓1 +66
Comments 49

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity