EditorConfig is a standard that helps developers define consistent coding styles between different editors and IDEs. Put a file in the root of your project called
.editorconfig, and when someone opens a file in a supported text editor, the editor will adhere to the project’s style rules. There are EditorConfig plugins for pretty much every text editor. I use this plugin for SublimeText.
.editorconfig file in the root of your project:
root = true
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
trim_trailing_whitespace = false
You can install EditorConfig for Sublime with Package Control in just a few seconds.
These are some of the tutorials and guides I’ve found most helpful while picking up Ruby on Rails 3.
Installing Rails on Windows:
Best “my first app” walk-through:
Using “remote” to ajaxify links and forms:
“Unobtrusive JS” library that ships with Rails 3:
Use Twitter Bootstrap with Rails:
|High Performance Web Sites
- Make Fewer HTTP Requests
- Use a Content Delivery Network
- Add an Expires Header
- Gzip Components
- Put Stylesheets at the Top
- Put Scripts at the Bottom
- Avoid CSS Expressions
- Reduce DNS Lookups
- Avoid Redirects
- Remove Duplicate Scripts
- Configure ETags
- Make AJAX Cacheable
|Even Faster Web Sites
- Understanding Ajax Performance
- Creating Responsive Web Applications
- Splitting the Initial Payload
- Loading Scripts Without Blocking
- Coupling Asynchronous Scripts
- Positioning Inline Scripts
- Scaling with Comet
- Going Beyond Gzipping
- Optimizing Images
- Sharding Dominant Domains
- Flushing the Document Early
- Using Iframes Sparingly
- Simplifying CSS Selectors
My first round of optimizations just went into production and our metric that measures “time from click until critical feature shows up in the browser” dropped from 5.25s to 3.5s. It’s neat to multiply the savings and see that many weeks of end-user browser load time are saved each day.
I spent some time updating the StepMania MacOS installer. There are many features that you probably will want in an installer dmg:
- an “Applications” link or alias
- a custom background image
- custom placement of icons
- .dmg compression
- a way to script building of an installer dmg
Here’s how you’ll want to achieve the above in your installer build script
- Create a temporary directory and copy into it all files you’ll want in your final .dmg (typically a .app or 1 directory, and maybe a documentation file)
- Create a symbolic link (ln -s /Applications $your_temp_dir) or manually make an alias to /Applications and then copy the alias to your temp directory.
- Use the yoursway create dmg script and pass in your temp directory, background image, icon locations, and it will spit out a compressed dmg. Something like: create-dmg –window-size 500 300 –background background.png –icon-size 96 –volname “StepMania4” –icon “Applications” 380 205 –icon “StepMania” 110 205 StepMania.dmg ../$temp.dir. Their script is based on the Adium installer applescript + wrapper.
You can see exactly how StepMania does it by checking out our scripts: https://svn.stepmania.com/svn/branches/4.0/stepmania/PBProject
In the process of trying to slim down ChartPT‘s memory usage, I settled on these free tools:
VMMap – http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx
Skip the many tutorials out there for the command line “vadump.exe” and use VMMap instead. The GUI presents information in a much more useful format (filterable, sortable).
First, check the list of loaded modules – some are explicit References in your project, others are dependencies of your references – and eliminate dependencies that you can do without. Next, check the “Private” and “Private Working Set” columns to identify areas that you may have some control over.
CLR 2.0 Profiler – http://www.microsoft.com/downloads/details.aspx?familyid=a362781c-3870-43be-8926-862b40aa0cd0&displaylang=en
Be sure to grab the “2.0” flavor of the profiler. Many tutorials are old and link to the CLR 1 version of the .Net Profiler – that version won’t work with your app that builds against .Net 2.0 or newer.
Use this app to take a snapshot of your memory usage, then view allocations by object type and view allocations in a call graph.
My biggest culprit: WCF
System.ServiceModel and System.Web grab 5.5MB of private memory (14+MB of private WS on my machine) as soon as I instantiate a client proxy object. The same things happens using built-in HTTP bindings in a skeleton console app or in the WCF test client. The System.Web allocation could probably be eliminated by changing to TcpTransport.
I typically edit PHP and Python using VI over SSH in multiple Putty windows. Arranging the windows is a pain, you lose all of your open shells if your connection hiccups, none of the machines I connect to provide color terminals, and I’m often fight VI’s indenting (and am too lazy to fix it on every machine).
I’ve now switched over to editing files on the server using Eclipse and the Repose System Explorer add-on. It solves all of the problems mentioned above.
- From Eclipse: Help -> Install New Software. “Work with: -All available sites-“. In the search box type “remote system”. Check “Remote System Explorer End-User Runtime”, click Next to proceed with the install.
- After the wizard completed, click Window -> Open Perspective -> Remote System Explorer. Right-click in Remote Systems, choose New Connection, type in your details. After you connect, expand “Sftp Files” and you’ll be able to open remote files in the editor.
Thanks Ikool’s Blogbed.