«Мак» для программиста
В комментариях
bolk-osx:~ bolk$ java -version 2>&1 | head -1
java version "1.6.0_24"
bolk-osx:~ bolk$ httpd -v | head -1
Server version: Apache/2.2.17 (Unix)
bolk-osx:~ bolk$ sqlite3 -version
3.6.12
bolk-osx:~ bolk$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
bolk-osx:~ bolk$ python -V
Python 2.6.1
bolk-osx:~ bolk$ perl -v | head -2 | tail -1
This is perl, v5.10.0 built for darwin-thread-multi-2level
bolk-osx:~ bolk$ bash --version | head -1
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
bolk-osx:~ bolk$ php -v | head -1
PHP 5.3.4 (cli) (built: Dec 15 2010 12:15:07)Ну и так далее.
«Эпл» не заплатила за рекламу?
В сериале «Числа» (Numb3rs), в одиннадцатой серии первого сезона, Чарли Эппс, один из главных героев, работает на «МакБуке» с заклееным бумажкой яблоком.
Кстати, в фильмах, кроме продукции «Эпл», часто встречается продукция фирмы Dell.
Запуск сайтов из Spotlight
Занялся потихоньку автоматизацией своих задач на «Маке».
Очень хотелось сделать так, чтобы по короткому имени, набираемому в Spotlight, открывались
Я знаю, что тут много ребят сидят на Windows, поэтому поясню. Spotlight (его аналог) есть на Windows 7 — это поисковая строка, куда можно вбить начальные буквы
В Mac OS X удобно, что это поисковое поле появляется по кнопке Ctrl+Пробел.
Написать плагин к Spotlight мне пока слабо́, а вот набросать на AppleScript программу, открывающую одноимённый сайт — пожалуйста.
Идея такова: кладу на диск одну и ту же программу в нескольких копиях, с разными именами — «wiki», «jira», «calendar» и так далее. Теперь их можно запускать откуда угодно, включая Spotlight. После запуска программа смотрит какое у неё имя, прибавляет к нему префикс/суффикс и проверяет существует ли получившийся домен, если да, то открывает его в браузере.
Программу надо сохранить при помощи редактора AppleScript (AppleScript Editor) с нужным именем (↑⌘S), формат файла должен быть «программа» («application»).
Вот сама программа (наверное маску
-- Ищет по маскам хост, подставляя имя программы,
-- если найден, открывает его в браузере
-- bolknote.ru апрель 2011
tell application "System Events"
set appname to the name of the current application
end tell
repeat with mask in {"%.yandex-team.ru", "www.%.ru", "www.%.com"}
set AppleScript's text item delimiters to "%"
set mask to text items of mask
set AppleScript's text item delimiters to appname
set hostname to "" & mask
if resolve(hostname) then
open location "http://" & hostname
exit repeat
end if
end repeat
on resolve(host)
try
do shell script "host '" & host & "'"
return true
on error
return false
end try
end resolveЭто пока мой первый опыт программирования в AppleScript, так что, возможно,
Добавлено позднее: в комментариях один из читателей предложил более простой и изящный вариант. Ура!
Вопрос про iPod Touch G1
Кто знает, подскажите, пожалуйста.
У подруги iPod Touch первого поколения. Когда был куплен (с рук, б/у), там стояла
Подруга, подключив его к iTunes, обновила прошивку до 1.1.5 (это последняя для этой модели). После обновления с него исчезли все приложения, а в iTunes теперь (не знаю был ли до этого или всё было поставлено через
Теперь вопрос — это ли способ, не делая джейлбрейк, ставить приложения на это устройство? Если нет, то чем сейчас модно делать джейлбрейк iPod’ов? Я уже попробовал ZiPhone, не получилось, выдаёт
Почему я использую «Семажик», чтобы постить в блог
Когда я писал движок своего блога (а я его именно писал, а не взял готовый, мне было интересно попробовать
Я просто реализовал протокол ЖЖ (на деле даже два — Flat и Metaweblog) и несколько лет, не зная горя, писал в блог даже с телефонов, где нет ничего, кроме J2ME.
Так что «выкинь „Семажик“ и пиши через веб» — это совет от незнания, чтобы постить через веб, нужно обеспечить такую возможность, а у меня нет времени и желания этим заниматься, мне просто не интересно.
Так что я просто потратил немного времени и нашёл себе клиент, который меня устраивает — это Phoenix. Он не такой удобный, как «Семажик», но, в целом, неплох.
Добавлено позже: не знаю как так вышло, сран… клиент, который меня устраивает, этот Phoenix удалил мне запись вместе с комментариями.
IE 10 Platform Preview 1
Microsoft уже предлагает скачать Internet Explorer 10 Platform Preview 1.
Помнится, многие рассуждали о том, что MS опять забросит свой браузер на годы. Как видите, нет, только вышел IE9, как уже можно скачать превью следующей версии.
Windows → Mac OS X
Только не подумайте, что я сошёл с ума, но со вчерашнего дня я работаю под Mac OS X. Вчера я поменял свой Dell E4200 с Windows 7 на MacBook Air.
Причин такого перехода несколько.
Одна из основных причин следующая: вот уже много лет, переходя с версии на версию Windows, я использую FAR, я считаю, что это плохо и хочу убрать FAR из своей головы. Под Windows мне это сделать не удаётся, поэтому я предпочёл сменить операционную систему.
Вторая серьёзная причина такая: я верю в то, что мозг надо «качать», как я это делаю с мышцами, давать ему повышенную нагрузку время от времени, чтобы он не терял гибкость. Перейти разом на другую операционную систему — мне видится, достойная нагрузка.
Третья серьёзная причина: MacOS X — это
Есть ещё и масса минорных причин. Их несколько, но достойны упоминания две.
Каждый год я смотрю несколько языков и один из них изучаю. В этом году мой выбор пал на язык Go, а его не оказалось под Windows.
Вторая минорная причина: некоторые важные для меня вещи в MacOS X делаются удобнее. Например, тут есть возможность примонтировать FTP как файловую систему, в Windows ничего лучше глючного WebDrive я не вижу уже много лет.
Я уже столкнулся с тем, что
Размер табуляции в CSS
В CSS3 есть хорошее свойство
Тем временем, свойство уже реализовано в некоторых браузерах, с собственным префиксом. Свойство первым поддержала «Опера» (с версии 10.60, именно от этой компании и было выдвинуто предложение добавить это свойство в CSS3), затем оно было реализовано в четвёртой версии FireFox. Остальные браузеры пока не подтянулись.
Вот как выглядит
body {
-o-tab-size: 4; /* размер табуляции — 4 (для Оперы 10.60+) */
-moz-tab-size: 4; /* размер табуляции — 4 (для FireFox 4+) */
-webkit-tab-size: 4; /* для будущих версий Safari и Chrome */
tab-size: 4; /* размер табуляции — 4, на будущее */
}Значение
Добавлено позднее: для WebKit уже есть патч для поддержки свойства
Uptime в Windows (на CMD)
Я заморочился и написал uptime на чистом CMD, раз уж на PowerShell уже до меня сделали. CMD — ужасный язык программирования!
Это я после Турции до программирования дорвался. Посмотреть что получилось.
@ECHO OFF
REM Евгений Степанищев //bolknote.ru 2011/04/09
REM Здесь CALL нельзя использовать, иначе хилый CMD не выдержит и лопнет —
REM подстановки переменных через %var% и !var! хватать перестанет
FOR /F "usebackq tokens=3" %%i ^
IN (`net stats srv ^| findstr /R "[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]*"`) DO SET DATE0=%%i
SET YEAR0=%DATE0:~6%
SET MONTH0=%DATE0:~3,2%
SET DAY0=%DATE0:~0,2%
SET YEAR1=%DATE:~6%
SET MONTH1=%DATE:~3,2%
SET DAY1=%DATE:~0,2%
REM Избавляемся от ведущих нулей, иначе CMD будет считать
REM числа восьмеричными
IF %DAY0:~0,1% == 0 SET DAY0=%DAY0:~1%
IF %MONTH0:~0,1% == 0 SET MONTH0=%MONTH0:~1%
IF %DAY1:~0,1% == 0 SET DAY1=%DAY1:~1%
IF %MONTH1:~0,1% == 0 SET MONTH1=%MONTH1:~1%
SET /A SUM=%DAY1%-%DAY0%
SETLOCAL ENABLEDELAYEDEXPANSION
IF %YEAR1% == %YEAR0% (
SET /A END=%MONTH1%-1
FOR /L %%M IN (%MONTH0%,1,!END!) DO (
CALL :getMonthDays %%M %YEAR0%
SET /A SUM+=!DAYS!
)
) ELSE (
REM 02.2010 -> +10 months
FOR /L %%M IN (%MONTH0%,1,12) DO (
CALL :getMonthDays %%M %YEAR0%
SET /A SUM+=!DAYS!
)
REM 02.2011 -> +2 months
FOR /L %%M IN (1,1,%MONTH1%) DO (
CALL :getMonthDays %%M %YEAR0%
SET /A SUM+=!DAYS!
)
REM Full years
SET /A START=%YEAR0%+1
SET /A STOP=%YEAR1%-1
FOR /L %%Y IN (!START!,1,!STOP!) DO (
CALL :isLeapYear %%Y
IF !FEB! == 29 (
SET /A SUM+=366
) ELSE (
SET /A SUM+=365
)
)
)
ECHO %SUM%
GOTO :EOF
REM ====== Функции ==========
REM Високосный ли год?
REM isLeapYear <год>
:isLeapYear
SET /A FEB=(%1/400)*400
IF %FEB% == %1 (
SET FEB=29
GOTO :EOF
)
SET /A FEB=(%1/100)*100
IF %FEB% == %1 (
SET FEB=28
GOTO :EOF
)
SET /A FEB=(%1/4)*4
IF %FEB% == %1 (
SET FEB=29
GOTO :EOF
)
SET FEB=28
GOTO :EOF
REM Количество дней в месяце
REM getMonthDays <месяц> <год>
:getMonthDays
CALL :isLeapYear %2
IF %1 == 2 (
SET DAYS=%FEB%
GOTO :EOF
)
IF /I %1 LSS 8 (
SET DAYS=30
SET /A DAYS+="%1&1"
) ELSE (
SET DAYS=31
SET /A DAYS-="%1&1"
)
GOTO :EOF
Uptime в Windows (на Powershell)
Написал на PowerShell скромный аналог утилиты uptime из Линукса (эта утилита показывает сколько дней компьютер работает без перезагрузки):
[math]::round(((Get-Date) - ($os=gwmi Win32_OperatingSystem).ConvertToDateTime($os.lastbootuptime)).TotalDays, 2)В основном в сети предлагается запустить «net stats srv» и посмотреть строку «статистика после» («statistics since»), впрочем и вариантов на PowerShell тоже хватает. Кстати, можно сделать ещё и такой вариант:
[math]::round(((Get-Date) - (((net stats srv)[3] -split ' ')[2,3] -join ' ' | Get-Date)).TotalDays, 2)Почти LISP.
Гора Тахталы
Поехали сегодня утром подниматься на фуникулёре на гору Тахталы — это гора около города Кемер, высота над уровнем моря — 2365 метров. Канатная дорога на эту гору вторая по длине в мире.
На вершине горы, конечно, лежит снег, там кристально чистый воздух. Сколько там до Кемера? Думаю, несколько километров, а город видно отлично. Правда иногда гору заволакивает облаками, но нам повезло, мы такое увидели только когда собрались обратно.









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

Памуккале
Так как погода в Лара Сиде, где мы отдыхаем, нас не порадовала, то вчера, в пять утра мы уехали за несколько сотен километров, в старинный город Памуккале, часть всемирного наследия ЮНЕСКО.
Памуккале — название турецкое, в переводе означает «хлопковая крепость», по одной из версий, название было дано
Историческое название — Гиераполь («священный город» с греческого), город был построен во втором тысячилетии до нашей эры и был разрушен землетрясением в 1534.
Сейчас от города осталась куча руин, которые археологи постепенно восстанавливают. Сохранность очень хорошая, нужно только установить блоки и колонны на место. Мы посмотрели, за отведённые несколько часов, довольно много, например, осмотрели мартирий св. Филиппа, туда вообще немногие поднимаются.








Гордость исторической части Памуккале (рядом деревня с тем же названием) — амфитеатр на 15 тысяч зрителей, он исключительно хорошо сохранился, хотя, конечно, его ещё нужно реставрировать.



Одна из причин, по которой туристы едут в Памуккале (и это та же причина, почему этот старинный город вообще появился) — горячие источники, которые выходят на поверхность в этой местности, «бассейн Клеопатры». Температура — около 36°С, очень комфортная, мы купались около часа. Особенно интересно, что в одном месте источника вода насыщена огромным количеством пузырьков газа, на манер шампанского.
Вода чистая, прекрасно видно дно, глубина, преимущественно, небольшая (около 1,5 метра), но в одном месте доходит до 4,5. Забавный контраст — купаешься в источнике, наслаждаешься теплом, а на мостике округляют глаза наглухо одетые японцы, спрашивающие «is it warm?»,
А ещё минеральные соли горячего источника покрывают окрестные горы красивым белым налётом, издалека это похоже на снег. К слову, в Турции снег в горах явление частое, но нам этом месте не та высота гор. Воды из источника не хватает на всё это белое великолепие, поэтому воду пускают поочерёдно, то на одну террасу, то на другую.





Жаль, не смогли посетить музей на территории — по понедельникам он закрыт.
Пара наблюдений о турецких дорогах. Местность, где мы находимся, по природе сильно, что можно спутать, напоминает Крым, только чуть более развитый. На трассах есть две интересные вещи.
Первое — специальные трёхцветные линейки, установленные по краям дороги. По ним можно оценить толщину сугроба, завалившего дорогу (иногда это случается — на перевалах в горах бывает настолько сурово, что русские зимы центрального района нервно курят в сторонке).
Второе — большинство знаков мигают светодиодами, а перед каждым сложным участком мигает «одноглазый» жёлтый светофор, всё это мигающее хозяйство запитано от солнечных батарей, установленных над каждым знаком.
Средиземное море








Вот оно какое — Средиземное море! Погода так себе, примерно +15, иногда дождь. Решили, что будем ездить на экскурсии и ходить в хамам (хамам входит в стоимость). Зато отель отличный и кормят хорошо, в любое время суток есть что поесть и всё очень качественное.
Кстати, живём мы всё же не в самой Анталье, а недалеко от Лара Сиде. До Антальи ходит 105 автобус, проезд стоит около доллара.
Татарский пригодился почти сразу, мы съездили в торговый центр «Özdilek», там и в маршрутном автобусе никто не говорил
Моя подруга Лена рассказала мне, что есть такая поговорка «счастлив тот, кто видел пять морей». Мы с женой видели Чёрное, Красное, Мёртвое, Средиземное и, если Индийский океан считается за море, то получается как раз пять.
Турецкий язык
Мы сегодня в Анталью летим, сидим в Домодедове, ждём вылета (он будет в пять утра), регистрацию и контроль прошли. Пока ждём, я скачал
Мы с женой родились в Татарстане, а татарский и турецкий языки родственники. Хотя мы оба очень плохо знаем татарский, тем не менее,
Татарский: бер, ике, өч, дүрт, биш, алты, җиде, сигез, тугыз, ун. Турецкий: bir, iki, üç, dört, beş, altı, yedi, sekiz, dokuz, on.
Башорг такой башорг
flapenguin: Знаешь, что у моей племянницы написано в учебнике по геометрии?
flapenguin: Треугольник называется прямоугольным, если _хотя бы один_ из углов равен 90 градусам.
flapenguin: Хотя бы один бл#дь. Fuck you, Pythagoras.
На Башорге, как обычно, такие математики и профессионалы…
С первым апреля!

Сегодня решил поздравить коллег с первым апреля. К сожалению,
Алиас для /etc/init.d/… restart
Устал я писать каждый раз строки вида «sudo /etc/init.d/nginx restart» для перезапуска многочисленных серверов, поэтому сделал себе короткий алиас. Я бы не упомянул об этом, если бы не два отличия.
Вот что получилось (у меня это в .bashrc):
rst () { command sudo /etc/init.d/$@ restart; }
function _rst() {
local cur
cur=${COMP_WORDS[COMP_CWORD]}
if [ 1 -eq ${COMP_CWORD} ]; then
COMPREPLY=( $(compgen -f -- /etc/init.d/$cur | xargs -n1 basename -- ) )
else
COMPREPLY=()
fi
}
complete -F _rst rstМагия гитхаба
Прочувствовал магию «Гитхаба». Я сейчас дописываю один плагин для phpBB (это популярный движок форумов), в процессе написания нашёл ошибку в плагине automod (плагин, который нужен чтобы ставить другие плагины).
Поскольку automod выложен
Авторы automod, когда увидят мой запрос, сделают merge с моей новой веткой и мои изменения помогут сделать мир лучше.
Очень просто и круто.
bo.lk
А домен bo.lk до сих пор свободен. Стоит 25000 шриланкийских рупий (плюс налог 12%), получается около $250. Не, покупать не буду, но имя хорошее.