Coding
Archived Posts from this Category
Archived Posts from this Category
15-ого марта состоялась конференция Exception #07, как всегда посвящённая программированию на динамических языках.
И на мой взгляд вполне успешно. Где проходило мероприятие и сколько длилось можно посмотреть сходив по указанной ссылке, а мне хотелось бы рассказать исключительно о своих впечатлениях.
Итак, началось всё действо с небольшим запозданием, была толкотня при получении бейджиков, но занимательно что все были исключительно вежливые и настроение было у всех на высоте. Немного потолкавшись кто хотел получил свою ручку и раздаточные материалы, кто нет - сделали это чуть позже.
Я присутствовал далеко не на всех докладах, ибо кроме конференции в Киеве в этот день у меня были ещё некоторые дела. Так вот. Началось для меня всё в малом зале с доклада Андрея Светлова - ‘Мастер-класс по Python: Метаклассы + Дескрипторы’. Если быть откровенным, то тема для меня была интересна, но сам доклад не понравился. Докладчик жутко нервничал и рассказывал на мой взгляд не очень понятно. Но, кому надо, те поняли и задали вопросы.
Следующим для меня был доклад Сергея Щетинина - По ту сторону ООП: PEAK-Rules и PyProtocols. Человек очень любит поговорить, и рассказывал много и долго, много лишнего, а общих вещей на понятном языке тоже не было. А может просто я плохо его понял, ибо докладчик говорил очень бысто. Всем понравилась “физкультура” с поднятием рук, которая проводилась каждые пять минут доклада. Сергей спрашивал: “А кто здесь умеет жонглировать четыремя мячами?” (это не цитата, а исключительно по-памяти вопрос) и умеющие поднимали руки. Но тема доклада очень интересная.
Затем в малом зале выступил и я с докладом о Grails. В зале находилось очень много Java-разработчиков, и мне кажется что мы нашли общий язык. Было много хороших вопросов и я старался отвечать. Но, пару вопросов я таки не понял, а именно про миграцию баз в grails и про фильтры с использованием замыканий. В следующий раз начну доклад с ответов на эти вопросы. И, признаться честно, был очень удивлён реакцией слушателей, помидорами ни кого в тот день не закидывали
Спасибо.
Так же довелось послушать Романа Калапуц с темой - Использование Jython и JRuby: разработка приложений для Java Virtual Machine. Рассказ был весьма интересный и познавательный. Разве что докладчик был немного перепуганный. Я бы с удовольствием послушал продолжение доклада на средующей конференции.
На оставшиеся доклады, к сожалению, попасть уже не удалось.
Пока у меня есть только видеозапись доклада с моим участием в “не очень хорошем качестве”
Обещаю в ближайшем времени выложить все материалы доклада “Разработка Веб-приложений с использованием Grails”
7 comments Monday 17 Mar 2008 | Andrew Dashin | Life, Coding, Grails
В ColdFusion реализованы большие возможности трассировки файлов и выполняемых запросов. Но медленно работающий код автоматически не будет найден. И тогда приходится искать эти места вручную.
Чтобы как-то облегчить жизнь я сделал кастом тег tracecode:
<cfswitch expression=#thisTag.ExecutionMode#>
<cfcase value=’start’>
<cfset start=GetTickCount()>
</cfcase>
<cfcase value=’end’>
<cfset end=GetTickCount()>
<cfoutput>
<h3>Total milliseconds elapsed: #end-start#</h3>
</cfoutput>
</cfcase>
</cfswitch>
Что бы найти медленный код нужно просто включить код в этот тег:
<cf_tracecode>
<!— Code Goes here —>
</cf_tracecode>
0 comments Wednesday 21 Mar 2007 | Andrew Dashin | Coding, ColdFusion
Вот, собственно вся функция, может кому будет полезно.
function ipToNumber($sIp) {
$sPattern = ‘(25[0-5]|2[0-4]\d|[01]?\d\d|\d)’;
if(!preg_match(“/^{$sPattern}\\.{$sPattern}\\.{$sPattern}\\.{$sPattern}$/”, $sIp)) {
// invalid IP
return -1;
} else {
$aNums = explode(‘.’, $sIp);
$i = count($aNums);
foreach($aNums as $nKey => $nValue) {
$i–;
$nResult += ($aNums[$nKey] * pow(256, $i));
}
return $nResult;
}
}
1 comment Wednesday 13 Dec 2006 | Andrew Dashin | Coding, PHP
Иногда вам нужен всего лишь один экземпляр класса. Например может быть полезно иметь всего один экземпляр класса, который вы используете для доступа к базе данных и использовать его в любом месте приложения. Это сократит затраты на подключение к серверу базы данных, уменьшит расход памяти.
Тогда ваш класс должен выглядеть так:
final class Database
{
private static $instance;
private function __construct()
{
// this code will never happen
}
public static function getInstance()
{
if (!isset(self::$instance)) {
$class = __CLASS__;
self::$instance = new $class;
}
return self::$instance;
}
public function __clone()
{
trigger_error(‘It is impossible to clone singleton’, E_USER_ERROR);
}
}
Данный класс объявлен как final для того, что бы от него не наследовались классы, обычно об этом забывают. Не очень хорошая идея наследовать свой класс от синглотна из-за статических членов. Но если вы всё так решите, то обязательно следует переопределить метод getInstance() и поле $instance.
3 comments Saturday 25 Nov 2006 | Andrew Dashin | Coding, PHP
while (list(,$vvv) = @each($aTmp)) {
$kkkk = substr($vvv,0,strpos($vvv,‘=’));
$vvvv = substr($vvv,strpos($vvv,‘=’)+1);
$aValues[$kkkk] = $vvvv;
}
Это кусок из кода, с которым мне приходится работать. Без комментариев.
5 comments Tuesday 14 Nov 2006 | Andrew Dashin | Coding, PHP, WTF
Для установки Windows PowerShell требуется предварительно установленная .net-2.0. Весь пакет занимает порядка 1.5Mb, что совсем не много для программы подобной функциональности. Определённо начать знакомство с PowerShell стоит с изучения команды ‘help’. ‘help help’ - было моей первой командой. Для получения полной справки по какой-либо команде нужно добавить параметр -detailed или -full. При использовании параметра -detailed отображается практически та же информация что и при использовании -full за исключением того, что не выводиятся NOTES и дополнительные сведения о входных парамтерах запрашиваемой команды.
Вспоминая былые времена, захотелось иметь аналог команды ‘ps’. И, да, существует - команда ‘Get-Process’. Такая длинная запись не очень удобна в использовании, и существует псевдоним (alias) - ‘ps’. То есть
ps | sort cpu -descending
на самом деле является ни чем иным как:
Get-Process | Sort-Object cpu -descending

Псевдонимы можно задать и изменять самому, например:
Set-Alias myps Get-Process
ps С первого взгляда PowerShell очень красивый и логичный, и на мой взгляд более современный и гибкий, нежели любой Unix shell.
0 comments Saturday 11 Nov 2006 | Andrew Dashin | Coding, PowerShell
- Next »