Блог python на хабрахабре
Python / Реализация объектов-словарей, как в Javascript
- 26 Сен 18:17
Итак друзья, в связи с сильно затянувшимися новогодними каникулами и полным отсутствием денег, ищу любую оплачиваемую удаленную работу “по специальности” (можно и не удаленную, но тогда в Тюмени или в Москве в с предоставлением жилья). Под “специальностью” надо понимать django, python, SEO, HTML/CSS верстка, javascript’овые фичи и пр. Люблю и немного умею оптимизировать проекты под высокие нагрузки. Работал со большинством реляционных систем управления базами данных.
Рассмотрю любые предложения. Пишите: markeev@gmail.com.
{ "_id" : ObjectId("4d125e16f52cb12e01d5d041"), "timestamp" : 1293038527, "name" : "jump" }
Постоянная ссылка на этот кусок кода: http://paste.nophp.ru/1Ot. Код раскрашен с помощью Paste.NoPHP.ru.
db.events.find().forEach(function (event) {
var date = new Date(event.timestamp);
print(date.getFullYear(), date.getMonth(), date.getDate());
})
Постоянная ссылка на этот кусок кода: http://paste.nophp.ru/1Ov. Код раскрашен с помощью Paste.NoPHP.ru.
db.events.find().forEach(function (event) {
var date = new Date(event.timestamp * 1000);
print(date.getFullYear(), date.getMonth(), date.getDate());
})
Постоянная ссылка на этот кусок кода: http://paste.nophp.ru/1Ow. Код раскрашен с помощью Paste.NoPHP.ru.
db.events.find().forEach(function (event) {
var date = new Date(event.timestamp * 1000);
print(date.getFullYear(), date.getMonth() + 1, date.getDate());
})
Постоянная ссылка на этот кусок кода: http://paste.nophp.ru/1Ox. Код раскрашен с помощью Paste.NoPHP.ru.
Он реально крут! Советую всем, кто когда-либо собирается делать формы на ExtJS присмотреться к нему:
http://technomedia.co.uk/SuperBoxSelect/examples3.html
Наиболее приятная (для меня) его часть в том, что допилить djangoextjs для генерации форм с ним сможет даже однорукий дебил.

<script src="shCore.js" type="text/javascript"></script> <script src="shAutoloader.js" type="text/javascript"></script> <script type="text/javascript"> SyntaxHighlighter.autoloader( 'js jscript javascript /js/shBrushJScript.js', 'applescript /js/shBrushAppleScript.js'); SyntaxHighlighter.all(); </script>


<script type="syntaxhighlighter" class="brush: bash" title="Хочешь посмотреть код, жми тут!"> C:\Sphinx>bin\indexer --all Sphinx 0.9.9-rc1 (r1566) Copyright (c) 2001-2008, Andrew Aksyonoff </script>
<link type="text/css" rel="Stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css"/>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"></script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js" type="text/javascript"></script>
<script type="text/javascript">
function path() {
var args = arguments, result = [];
for(var i = 0; i < args.length; i++) {
result.push(args[i].replace('@', 'http://alexgorbatchev.com/pub/sh/current/scripts/'));
}
return result;
}
SyntaxHighlighter.autoloader.apply(null, path(
'applescript @shBrushAppleScript.js',
'actionscript3 as3 @shBrushAS3.js',
'bash shell @shBrushBash.js',
'coldfusion cf @shBrushColdFusion.js',
'cpp c @shBrushCpp.js',
'c# c-sharp csharp @shBrushCSharp.js',
'css @shBrushCss.js',
'delphi pascal @shBrushDelphi.js',
'diff patch pas @shBrushDiff.js',
'erl erlang @shBrushErlang.js',
'groovy @shBrushGroovy.js',
'java @shBrushJava.js',
'jfx javafx @shBrushJavaFX.js',
'js jscript javascript @shBrushJScript.js',
'perl pl @shBrushPerl.js',
'php @shBrushPhp.js',
'text plain @shBrushPlain.js',
'py python @shBrushPython.js',
'ruby rails ror rb @shBrushRuby.js',
'sass scss @shBrushSass.js',
'scala @shBrushScala.js',
'sql @shBrushSql.js',
'vb vbnet @shBrushVb.js',
'xml xhtml xslt html @shBrushXml.js'
));
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>

<script src="shCore.js" type="text/javascript"></script> <script src="shAutoloader.js" type="text/javascript"></script> <script type="text/javascript"> SyntaxHighlighter.autoloader( 'js jscript javascript /js/shBrushJScript.js', 'applescript /js/shBrushAppleScript.js'); SyntaxHighlighter.all(); </script>


<script type="syntaxhighlighter" class="brush: bash" title="Хочешь посмотреть код, жми тут!"> C:\Sphinx>bin\indexer --all Sphinx 0.9.9-rc1 (r1566) Copyright (c) 2001-2008, Andrew Aksyonoff </script>
<link type="text/css" rel="Stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css"/>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"></script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js" type="text/javascript"></script>
<script type="text/javascript">
function path() {
var args = arguments, result = [];
for(var i = 0; i < args.length; i++) {
result.push(args[i].replace('@', 'http://alexgorbatchev.com/pub/sh/current/scripts/'));
}
return result;
}
SyntaxHighlighter.autoloader.apply(null, path(
'applescript @shBrushAppleScript.js',
'actionscript3 as3 @shBrushAS3.js',
'bash shell @shBrushBash.js',
'coldfusion cf @shBrushColdFusion.js',
'cpp c @shBrushCpp.js',
'c# c-sharp csharp @shBrushCSharp.js',
'css @shBrushCss.js',
'delphi pascal @shBrushDelphi.js',
'diff patch pas @shBrushDiff.js',
'erl erlang @shBrushErlang.js',
'groovy @shBrushGroovy.js',
'java @shBrushJava.js',
'jfx javafx @shBrushJavaFX.js',
'js jscript javascript @shBrushJScript.js',
'perl pl @shBrushPerl.js',
'php @shBrushPhp.js',
'text plain @shBrushPlain.js',
'py python @shBrushPython.js',
'ruby rails ror rb @shBrushRuby.js',
'sass scss @shBrushSass.js',
'scala @shBrushScala.js',
'sql @shBrushSql.js',
'vb vbnet @shBrushVb.js',
'xml xhtml xslt html @shBrushXml.js'
));
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
Copy Source | Copy HTML- from django.utils import simplejson
-
- class DatetimeJSONEncoder(simplejson.JSONEncoder):
-
- class DateInt(int):
- '''
Наследуемся от int, потому что тогда значение будет без "".
В других случаях получим: "new Date(100500)" и при eval будет просто
строка.
''' - def __str__(self):
- return 'new Date(%s)' % (self*1000)
-
- def default(self, o):
- from django.utils import datetime_safe
- from datetime import datetime
- import time
-
- if isinstance(o, datetime):
- d = datetime_safe.new_datetime(o)
- return self.DateInt(int(time.mktime(d.timetuple())))
- else:
- return super(DatetimeJSONEncoder, self).default(o)
-
- #example
- from datetime import datetime
- from django.utils import simplejson
-
- data = dict(date=datetime.now())
- json = simplejson.dumps(data, cls=DjangoJSONEncoder)
Идея следующая — взять pypy, скомпилировать его с помощью pycow и посмотреть что получится. Результатом должен полный набор стандартных библиотек python которые можно будет запользовать как для sculpt так и для pycow .
Единственное что сдерживает — непонятка с алгоритмом работы import. В том плане что ни в sculpt, ни в pycow import не реализован вообще.
И это обоснованно — потому что действительно неочевидно — как организовывать import в удаленный клиент. Плодить кучу файлов и переспрашивать их с помощью XmlHttpRequest — плохо, потому как много запросов. Упаковывать весь python в один файл — тоже ни разу некомильфо, потому как получится один большой файл, в котором будет много лишнего.