サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
amix.dk
I just released a forked version of vimroom which I call vim-zenroom. It enables you just to focus on the code or the text you are writing, without all the distractions! It provides following features: A special mode for editing Markdown and reStructuredText. It's highly inspired by iA Writer Optimizations for my vimrc You can go into this using <leader>V (standard vimroom mapping) or <leader>z (i
I released bitmapist a while ago and I am happy to release an extension that makes the library much more powerful! Installation and source code sudo pip install -U bitmapist Fork the code at Github. The reason why I implemented this I want to tell you why I coded this (and how we saved over $2000/month by having this library). I looked at Mixpanel's retention feature - which seems amazing. The pro
Me harties in this post I will give some tips on how you can debug and fix memory leaks in JavaScript. In the end I have also shared a script that can automatically spot too large data structures in any web application. Finding out you have a problem A good approach for figuring out if your web application leaks memory is this: Disable all extensions and reload your browser Launch a monitor where
Recently I have been fascinated with how to structure web-applications, especially web-applications that use a lot of JavaScript. To learn more I have done some research into one of the most widely used design-patterns: Model-View-Controller (MVC). This blog post explores how MVC is used in Smalltalk, Ruby On Rails, .Net and Cocoa. I also implement Smalltalk's and Cocoa's MVC patterns using jQuery
One of the great features of the CoffeeScript language is the great expressiveness that allows easy creation of Domain Specific Languages (DSLs). In this post I'll explore this aspect of CoffeeScript more with a reflection on how DSLs are done in Ruby. Why bother with DSLs? If you are a programmer then you have worked with a lot of DSLs, some of these are: regular expressions SQL CSS etc. DSLs sho
I just released coffee-watcher - a little script that can watch a directory and recompile CoffeeScript files if they change. What's interesting about this isn't the code itself, but the parts that are used build this script. In this post I'll dig deeper into these parts and explain how they fit together to form the JavaScript backend stack. The JavaScript backend stack The stack I used for coffee-
I have coded a lot of years in JavaScript and I have produced a lot of JavaScript code. Yet even with all my experience I still struggle to make JavaScript beautiful. In this post I'll explore why writing beautiful JavaScript is hard and how to improve this with CoffeeScript - a minimalistic language that compiles to JavaScript. What is beautiful code? Given that beauty is subjective I want to sta
Today I did a presentation on Redis for engineers at Google's Taipei office. My presentation isn't only about Redis, but on designing simple solutions, scaling to millions of users and the strategies and philosophy that I follow. I enjoyed giving this presentation, even thought it was a big challenge for me since presenting isn't something I regularly do, but I like challenges. Thanks for Ping and
This is a follow up post to How Hacker News ranking algorithm works. This time around I will examine how Reddit's default story and comment rankings work. Reddit's algorithms are fairly simple to understand and to implement and in this post I'll dig deeper into them. The first part of this post will focus on story ranking, i.e. how are Reddit stories ranked? The second part of this post will focus
At Plurk we process many millions of comet notifications pr. day and so far we have processed billions of them. It's comet at a very large scale and I think we are one of the biggest users of comet technology on the Internet. We use comet to deliver realtime updates to the users so they can plurk in realtime with their friends. Scaling this has been a challenge and we have tried many different sol
In this post I'll try to explain how Hacker News ranking algorithm works and how you can reuse it in your own applications. It's a very simple ranking algorithm and works surprising well when you want to highlight hot or new stuff. Digging into news.arc code Hacker News is implemented in Arc, a Lisp dialect coded by Paul Graham. Hacker News is opensource and the code can be found at arclanguage.or
Using ctags and Vim is a lethal combination, especially when doing bigger projects. Using them gives you the following features: Impressive class/function/method search Ability to go to the definition of a function with one click (even in dynamic languages like Python) Better overview by a module browser (where you can see classes and members) Getting started with Taglist Tag list opens a left win
The web is becoming more and more realtime and we at Plurk are following the trend. Yesterday we released instant notifications so users can have conversations with sub-second delays - - it's like group based instant messaging. Implementing this has not been easy given the complexities and size of Plurk, some problems include: huge amount of active users - hundred thousands of online users at once
I think that monitoring and having an overview is one of the most important things in running a healthy web-application. As far as I can see, the toolset of monitoring things is pretty under developed and I want to showcase Plurk's monitoring tools, which we will probably open source in the future. First of all, we at Plurk use the standard tools that's used for monitoring. These are: cacti - netw
Finding and fixing memory leaks can be a real challenge, but luckily Python has some pretty good tools for spotting these things. I have already written about this issue and this post will go into more details on how to spot and debug a memory leak in MySQLdb, which is the standard Python wrapper for MySQL.Introducing Dozer Dozer is a WSGI middleware that displays sparklines of Python object count
In this post I'll show you how to implement really fast polling using C and libevent, memcached and nginx. The performance of the server is over 2400 request pr. second on a not optimized Mac Book - that's 144.000 requests pr. minute. At Plurk we use polling and we have thousands of live users hammering the service with poll requests. It's beginning to be pretty expensive so I set a goal to optimi
memcache_servers = ['192.168.0.246:11212', '192.168.0.247:11212', '192.168.0.249:11212'] ring = HashRing(memcache_servers) server = ring.get_node('my_key') The motivation behind hash_ring Consistent hashing is really neat and can be used anywhere where you have a list of servers and you need to map some keys (objects) to these servers. An example is memcached or a distributed system. A problem whe
Build your website.Build your dream website fast and easy, without any coding. Learn more Find your own domain.This one is taken, but you can find another available domain easily. Learn more
I have developed a 2 KB JavaScript library that does not depend on any external library. This library will improve your life in JavaScript for the better! What does it do? Well, instead of doing this: var dl = document.createElement('dl'); dl.className = 'my_dl'; var dt_equ = document.createElement('dt'); dt_equ.innerHTML = 'Equipments'; dt_equ.className = 'my_dt'; dl.appendChild(dt_equ);
You can grab the new versions on my projects page. Demos are also updated: DoubleUp demo GoogieSpell demo GreyBox demo Enjoy! PS: I am putting last touches on Skeletonz :] aaaa 13. Dec 2006 aa clabnet 11. Mar 2007 Poor, link not functional. dfdfs 10. Apr 2007 dfsdfsd saDS 3. May 2007 DAds a 8. May 2007 a Bill 3. Aug 2007 That's amazing... (One more addition would be: the gray box could be moved w
As web applications get more dynamic and complex, it's crucial to know what's the fastest way to render content. I have done some research and I am gladly sharing it with you. The things I cover: HTML render benchmarking: test of basic DOM, AJS DOM, innerHTML and RND template. RND template: Python inspired template system that's super simple and super fast. Real world usage: How I gained 80x perfo
Omni completion isn't automatically turned on for Vim 7, and it's super useful if you code in CSS or HTML. In your vimrc you can add following to turn completion on: autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscom
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " _ " __ | \ " / | / " \__ | \ " by Amix - http://amix.dk/ " " Maintainer: Amir Salihefendic <amix3k at gmail.com> " Version: 2.7 " Last Change: 12/10/06 00:09:21 " " Sections: " ---------------------- " General " Colors and Fonts " Fileformats " VIM userinterface " Statusline " Visual " Moving around and tabs " General Autocommand
RSS feed Blog labels amix.dk related Announcements Code CodeRewrite Design Education Interesting JavaScript Life Mac Orangoo Plurk Political Python Skeletonz Stuff Tips Todoist VIM Editor Blog Archive Posts in 2004 Posts in 2005 Posts in 2006 Posts in 2007 Posts in 2008 Personal info About me amix@amix.dk Projects Plurk Todoist Skeletonz CMS GoogieSpell GreyBox AJS Other...
次のページ
このページを最初にブックマークしてみませんか?
『Hosted by one.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く