mirror of
https://github.com/kennethreitz/kennethreitz.org.git
synced 2026-06-05 06:46:13 +00:00
initial
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
fly.toml
|
||||
.git/
|
||||
__pycache__/
|
||||
.envrc
|
||||
.venv/
|
||||
data/photos/
|
||||
@@ -0,0 +1,4 @@
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
data/photos filter=lfs diff=lfs merge=lfs -text
|
||||
@@ -0,0 +1,20 @@
|
||||
name: Fly Deploy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
jobs:
|
||||
deploy:
|
||||
name: Deploy app
|
||||
runs-on: ubuntu-latest
|
||||
concurrency: deploy-group # optional: ensure only one action runs at a time
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: 'true'
|
||||
submodules: 'recursive'
|
||||
- run: git lfs pull
|
||||
- uses: superfly/flyctl-actions/setup-flyctl@master
|
||||
- run: flyctl deploy --remote-only
|
||||
env:
|
||||
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
|
||||
@@ -0,0 +1,4 @@
|
||||
.vscode
|
||||
__pycache__
|
||||
.envrc
|
||||
.DS_Store
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
FROM python:3.12.4-bookworm AS builder
|
||||
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PYTHONDONTWRITEBYTECODE=1
|
||||
WORKDIR /app
|
||||
|
||||
RUN python -m pip install uv
|
||||
RUN uv venv .venv
|
||||
COPY requirements.txt ./
|
||||
|
||||
|
||||
RUN uv pip install -r requirements.txt
|
||||
|
||||
|
||||
FROM python:3.12.4-slim-bookworm
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/.venv .venv/
|
||||
|
||||
# Install fortune.
|
||||
RUN apt-get update && apt-get install -y fortunes
|
||||
|
||||
COPY . .
|
||||
CMD ["/app/.venv/bin/fastapi", "run", "tuftedoc.py"]
|
||||
@@ -0,0 +1,6 @@
|
||||
# kr-website
|
||||
|
||||
This is the repository for the website kennethreitz.org. It is built using FastAPI, FastHTML, and AI.
|
||||
|
||||
## Development
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Alchemical Divorce
|
||||
|
||||
This EP is a collection of songs that Kenneth Reitz wrote and recorded in 2019.
|
||||
|
||||
# Listen on Streaming Services
|
||||
|
||||
- [Apple Music](https://music.apple.com/us/album/alchemical-divorce-ep/1309427027)
|
||||
@@ -0,0 +1,39 @@
|
||||
# As Above, So Below.
|
||||
|
||||
|
||||
**"As Above, So Below"** is an album by Infinite State, a project led by Kenneth Reitz. The album is a masterful blend of ambient, electronic, and experimental music, creating an immersive auditory experience that reflects the concept of duality—where the physical and metaphysical, the above and below, are intertwined.
|
||||
|
||||
## Album Overview
|
||||
|
||||
### Musical Style
|
||||
- The album features a mix of ambient and electronic sounds, with intricate layering and atmospheric tones.
|
||||
- It’s an exploration of sonic textures that evoke a sense of introspection and transcendence.
|
||||
|
||||
### Concept
|
||||
- "As Above, So Below" delves into themes of duality and the connection between the physical and spiritual realms.
|
||||
- The music mirrors this by oscillating between serene, meditative tracks and more dynamic, complex compositions.
|
||||
|
||||
### Key Tracks
|
||||
- **"Below"**: Sets the tone with its deep, resonant bass and ethereal melodies, representing the grounding aspect of the album.
|
||||
- **"Above"**: Contrasts this with lighter, airy soundscapes that suggest ascension and higher consciousness.
|
||||
|
||||
### Production
|
||||
- The album’s production is meticulous, with each track carefully crafted to contribute to the overarching theme.
|
||||
- The use of analog synthesizers and digital effects creates a rich, immersive sound.
|
||||
|
||||
## Listening Experience
|
||||
|
||||
### Atmosphere
|
||||
- The album is designed to be an immersive experience, ideal for deep listening sessions where the listener can fully engage with the music’s nuances and subtleties.
|
||||
|
||||
### Emotion
|
||||
- Listeners are taken on an emotional journey that spans from introspective and contemplative to uplifting and expansive, reflecting the dual nature of existence that the album explores.
|
||||
|
||||
## Conclusion
|
||||
- **"As Above, So Below"** is a thought-provoking and sonically rich album that showcases Infinite State's ability to blend ambient and electronic music into a cohesive, meditative experience.
|
||||
- It’s an album that invites listeners to explore the depths of their own consciousness, making it a standout work in the ambient and experimental music genres.
|
||||
|
||||
# Listen on Streaming Services
|
||||
|
||||
- [Spotify](https://open.spotify.com/album/3DH7kyV3oRhvfp5mDzZtXh)
|
||||
- [Apple Music](hhttps://music.apple.com/us/album/as-above-so-below/1440343978)
|
||||
@@ -0,0 +1 @@
|
||||
I am an electronic musician and photographer, on hiatus from both.
|
||||
@@ -0,0 +1,4 @@
|
||||
# Messengers Rising
|
||||
|
||||
- [Spotify](https://open.spotify.com/album/5SAvmM6fgmhESARQRvt2Uj)
|
||||
- [Apple Music](https://music.apple.com/us/album/messengers-rising/1196406858)
|
||||
@@ -0,0 +1,4 @@
|
||||
# Resolution
|
||||
|
||||
|
||||
https://music.apple.com/us/album/resolution/1257987614
|
||||
@@ -0,0 +1,4 @@
|
||||
# Unmastered Impulses
|
||||
|
||||
|
||||
https://open.spotify.com/album/1ejOTrNLk9qTzF6uuPn6xw
|
||||
@@ -0,0 +1,7 @@
|
||||
# Contact Kenneth Reitz
|
||||
|
||||
- Phone Number: `+15405508939`
|
||||
- Email: `me@kennethreitz.org`
|
||||
|
||||
Feel free to reach out to say "Hi!" if you have any questions or comments!
|
||||
I love hearing from all of you, and do my best to respond to everything of interest.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Alternative Paths of Thought
|
||||
|
||||
Our culture promotes self\-exaltation above all else.Girls are taught to flaunt their bodies for attention while men are taught that women are merely objects of pleasure. Gay man are often looked down upon, while lesbian women are often praised. When a man gets a girl pregnant, he is looked up to, while the woman who is pregnant is looked down upon.Why is this?Media programs and corporations tell people to love themselves and not others \- to indulge themselves and to seek fulfillment in life through material goods, ego\-boosting, and sexual adventures. Certainly, these things, in and of themselves, will often leave people with temporary, empty satisfaction. But in the end, only leave disparity. This only further proves God's total reign over us, and how helpless we all are without his love.Corporations are not the only ones to blame though, the people are just as much to blame.These corporations are built from people. The people are inherently selfish and are trying to make as much money as possible, therefore the companies are going to reflect that.People are taught by the media to embrace people with different lifestyles than them (ie homosexuals), while they are taught that religious groups are close\-minded groups that brainwash you (and this is often the case).
|
||||
|
||||
And this seems to be how Christianity is viewed as well. People will 'pray' and read their Bibles all in vain because it is what they are told is what is the 'right thing to do'. Life is not a magical formula of rituals that we much complete in order to be complete. Buddhism, Hinduism, and Catholicism all preach this message.No wonder people think that the Church is a cult.
|
||||
|
||||
Keep in mind, please, that I am generalizing here, as that is necessary for writings such as these.
|
||||
|
||||
The root of ALL of the problems in this world is selfishness. Period. Even those of the church.
|
||||
|
||||
The message of some Baptist churches is that God is begging every human being alive to accept him as their savior, but what kind of savior is that? If God has no dominion over his people then he isn't much of a God, now is he? If people were to choose God in and of themselves, then the act of accepting God as one's eternal savior would in itself be an act of selfishness, as it would only be to live eternally.
|
||||
|
||||
Calvinism seems, to me, to be the right way to think. People do not choose God, selfishly. God chooses the people who he will lead to choose him. God presents himself to his chosen people, and only then will people recognize their true need of him and accept him as their eternal savior. Only then will they see the irresistible grace of God and cling upon him.
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# .::Hacker Identity::.
|
||||
|
||||
I've recently come to identify myself with the hacker community. While I have always considered myself to be apart of this, I recently have become slightly more... enabled in certain areas.The typical Protestant work ethic is that is a "value emphasizing the necessity of constant labor in a person's calling as a sign of personal salvation." I must heavily disagree.
|
||||
|
||||
The principles of the hacker ethic are:
|
||||
|
||||
* Access to computers — and anything which might teach you something about the way the world works — should be unlimited and total. Always yield to the Hands\-on Imperative!
|
||||
* All information should be free.
|
||||
* Mistrust authority — promote decentralization.
|
||||
* Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position.
|
||||
* You can create art and beauty on a computer.
|
||||
* Computers can change your life for the better.
|
||||
|
||||
I couldn't agree more...
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# Modesty, Femenism, and Political Centrism
|
||||
|
||||
One of my favorite philosophical concepts is simply looking at things from another point of view...I was reading an excellent article in a Christian Counter\-Culture magazine entitled "Uncompressed", published by the students of Calvin College. The article was about modesty.
|
||||
|
||||
Modesty.
|
||||
|
||||
What is the first thing that comes to mind?
|
||||
|
||||
Now... hold that thought.
|
||||
|
||||
First, let's take a look at the 'big picture'.
|
||||
|
||||
In our commercialized, sex\-soaked economy, there is, obviously, a very low standard of modesty, as companies are continually pushing the envelope to maximize profit. I.e. The more skin a model shows in a commercial, the more people are attracted to buy the product. While this certainly poses a problem, I have recently come to realize that the corporations are not the main cause of this growing problem.
|
||||
|
||||
It's us: The people. (And yes, the Christians too)
|
||||
|
||||
We are the ones who buy into what these companies give us. We are the ones who exhibit interest in the sexual propaganda in the first place, and we continue to do so. The companies are not innocent; they prey on our weaknesses. But we are the ones who give into our own weaknesses. While we are both separate groups 'profiting' from each other, all we are really doing is continually taking advantage of each other to maximize each other’s ego (whether it be a company's amount of profit, or a person's level of self indulgence).
|
||||
|
||||
Now let's take this to a more personal level.
|
||||
|
||||
Women will dress provocatively in order to get attention from men, right? Generally, dressing immodestly is an act that is near always associated with women and women only. But men do this too: look at WWE. Women lust just as much as men do, only in a different way.Often, women give into their desires for attention by dressing immodestly. This is lust just as much as the men looking at them is.
|
||||
|
||||
Men and Women are both equally the root of these modesty problems.
|
||||
|
||||
By stating that men are the problem, I am labeled as a feminist. By stating that women are the problem, I am labeled the opposite. Why must we have these two extremes? I prefer the third way:I'm more of a radical centrist.
|
||||
|
||||
Our culture is so very sexist in nature.Men will talk amongst themselves about how stupid women can be, while women will say that all men are sex\-hungry wolves. Why do we do this?
|
||||
|
||||
Women need to change the way that they view men in their minds and men need to change the way that they view women in their minds.
|
||||
|
||||
The companies are not the source of the problem; the are a contribution. consumers are not the source of the problem either, they are a contribution.
|
||||
|
||||
Excerpted from afore\-mentioned article:In Japan, Geishas are sensual because they reveal the backs of their necks. Some Islamic women feel most comfortable wearing the nigab, which covers all but their hands. Other cultures, such as Australian aborigines and traditional African tribes, condone all but genital nudity. If our reaction to the human body is a result of cultural training, we all should be making efforts to relearn how to view the human body, rather than placing the responsibility solely on women to conform to vague expectations about what is “safe” to wear.
|
||||
|
||||
There is a point where being being free\-minded is no longer being simply open to other opinions and points of view. There is a point where you must search on your own.
|
||||
|
||||
"We’re facing the sunset, and for a moment it looks like it’s rising \- We're on the other side of things." \- SA Martinez
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# Self.
|
||||
|
||||
Looked into your eyes
|
||||
and saw
|
||||
My guilty pride
|
||||
The tragic flaw
|
||||
The innocence
|
||||
I once embraced
|
||||
Has shown it’s hidden
|
||||
Ugly face
|
||||
|
||||
Looked into your eyes
|
||||
and felt
|
||||
The grudges that
|
||||
Were left undelt
|
||||
The emptiness
|
||||
That can’t be healed
|
||||
Your love for me
|
||||
Is now revealed
|
||||
|
||||
Look into your eyes
|
||||
and see
|
||||
How deceitful
|
||||
I’ll always be
|
||||
The shadows dark
|
||||
The night is still
|
||||
This empty heart
|
||||
I cannot fill
|
||||
|
||||
Look into your eyes
|
||||
and feel
|
||||
I realize now
|
||||
My need real
|
||||
|
||||
I give my one
|
||||
I give my all
|
||||
Try to save myself
|
||||
but fall
|
||||
|
||||
I’ve tried it all
|
||||
and now I see
|
||||
How much your love
|
||||
Means to me
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# A New Spin to Software Platform Design
|
||||
|
||||
\*I wrote this article two years ago, before I found OS X.\*
|
||||
|
||||
As I've said before, I find many reasons to believe that modern commercialized software platforms are severely lacking in many, many areas. This should not come as a surprise to anyone. Perhaps basic utility\-inclusion is not the only solution though. Perhaps the basic priority structure and ethics that development and marketing teams utilize should be forced into question.
|
||||
|
||||
Essentially, most major computer software corporations, are, all in all, trying to make money. No matter how hard you try to find a way around this, or justify why these companies try to do the things that they do, the only answer is money. These companies are simply trying to make a quick buck. This concept has worked incredibly well for years, but we seem to have a bit of a problem with foresight. After a while, people get rather bored with the same old concepts being presented to them in new and exciting ways. This is why Microsoft needs to release a new operating system every once in a while. Microsoft's current problem is that the masses are beginning to realize their other options.
|
||||
|
||||
So here's my proposal for the long\-term design and marketing strategy 2\.0:
|
||||
|
||||
An operating system should first be a place of power, consistency, stability, scalability, and flexibility. Included would be a robust and fully scriptable toolset which can be manipulated and presented both graphically and statistically.
|
||||
|
||||
Second, the user interface should be very well thought out and planned, with ample room for improvement down the road. Its purpose should first be a place of usability, workflow, and creativity. Task\-related workflow and presentation customization, accessible to all types of users, is crucial to the success of the UI. Second, the User Interface should be a mode of personal expression and aesthetic preference. This should never take precedence over the overall stability, usability, or general usefulness of a desktop system, for any given reason.
|
||||
|
||||
Lastly, the user application platform system needs to be designed. A centralized repository of applications is an incredibly efficient method for application distribution. This repository would be a dynamic, centralized database of application software and packages that are intended for different groups of people. Most major Linux distributions use this heavily, as well as Apple for it's iPod and iPhone applications, and it has been proven to work well.
|
||||
|
||||
Any of these rules should have the ability to be broken easily by advanced power users for technical reasons/needs. This should be in no way advertised or demonstrated.
|
||||
|
||||
Anyone up for the challenge?
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# Browser Wars: The Saga Continues
|
||||
|
||||
Every computer\-savvy technocrat is partial to their own web browser of choice. I’ve used every major one out there, and have to come to the conclusion that there is no one\-for\-all browser that everyone should use. That should go without saying though.
|
||||
|
||||
Okay, so… Let’s list the major browsers then:
|
||||
|
||||
* Microsoft Internet Explorer
|
||||
* Mozilla’s Firefox 3
|
||||
* Apple’s Safari 3
|
||||
* Google’s Chrome
|
||||
* Opera
|
||||
|
||||
So, lets start out with Internet Explorer.
|
||||
|
||||
I honestly don’t use it. Ever. I did back in the day, but now I honestly see no reason to. The average grandmother or design professional with no technological experience at all cannot even comprehend the concept of a web browser, so this accounts for its widespread use I assume. I don’t know anything special about it, aside from the fact that it allows very easy access to lower\-level system calls for malicious code to be run. Oh joy. This problem seems to be fixed in new versions, but still. It’s slow, it’s cumbersome, it’s a little shiny. I’m not going to stop you from using it, but I think you’ll have much better luck with other browsers, not to mention a much more enjoyable browsing experience.
|
||||
|
||||
Alas, the almighty Firefox 3\.
|
||||
|
||||
Cutting\-edge technology. Very fast rendering engine. Muti\-platform. Countless number of addons that range from anything from [video\-grabbers](http://www.google.com/url?sa=t&source=web&ct=res&cd=2&url=https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F3006&ei=gkIPSaLAO4mIsAOXpdiZDw&usg=AFQjCNHgWBbBBSVpYlScn12DRgs2uKNFVg&sig2=DPwXVf3AB7KbZ1aoX9EJsQ), [text scramblers](http://www.google.com/url?sa=t&source=web&ct=res&cd=1&url=https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F507&ei=QEIPSY_TM4mMsAPTt6CPDw&usg=AFQjCNHmZbSe4ejEwNeff1mtYKF1lnRU-g&sig2=HWX13cwxkqHbgzLClQOTCw), and [porn guzzlers](http://www.squarefree.com/pornzilla/) (btw, I am in no way endorsing such activity). Why not use Firefox? It’s incredibly robust, completely open\-source, very secure, and runs an just about anything from an IBM mainframe to a pocket calculator. This was my personal favorite, and, in a way, still is. We’ll get into that in a moment though.
|
||||
|
||||
The forbidden Safari 3\.
|
||||
|
||||
A once OSX\-only browser, Safari was to OSX as Internet Explorer was to Windows. Little known to most people, actually, is that Microsoft and Apple made a deal back in the day, and for a few years, Internet Explorer was included on every Apple computer. But back to my point, there are others available now for OSX. As a matter of fact, I believe even Internet Explorer can be natively installed. Don’t hold me to that though. Anyway, Safari is also [avaible for Windows](http://www.apple.com/safari/download/) now. It works very very fast. Not quite as fast as Firefox 3, but it’s very smooth. Looks great too. Not to much as addons are concerned, but it works wonderfully. If you’re not a software\-freak then I see no reason not to use this. Its great if you don’t want many features. It’s a no\-crap browser. Although, I’ll have to admit, you should be careful while using it. There’s no SSL support, which means no secure browsing, which could mean no privacy… but hey, just don’t use any credit cards. ^\_^
|
||||
|
||||
OMG! Google Chrome!
|
||||
|
||||
At last, Google Chrome. It works well. It’s fast. It’s only made for Windows. Oh, and Linux users, here. You don’t have to miss out anymore. [Crossover Chromium](http://www.codeweavers.com/services/ports/chromium/)! Give it a shot. Built in Gears and Prism support is a huge plus, as I use each of those every day. Process\-independent tabs is also a fantastic plus. Firefox should adapt this as soon as possible. Mozilla is attempting to integrate both Prism and Gears into the Firefox code base I believe so there isn’t too much advantage in that for long. It’s a nice refreshing look at a browser that actually works. Also perfect for someone who doesn’t do much online. There’s a lot of power behind that ease\-of\-use though, if you know where to look. [Google Chrome.](http://www.google.com/chrome)
|
||||
|
||||
Opera? What’s that?
|
||||
|
||||
Who knows why it’s not as popular as it should be. It’s fast, it’s sleek, its insanely compliant, it’s powerful. The main reason I don’t use it is it’s lack of addons. It has addon support, but not many people use it, so few are available. I encourage everyone to check it out at least. If they just marketed it, I think it’d be really popular. [Opera.](http://www.opera.com/)
|
||||
|
||||
And now, for Flock: my personal favorite.
|
||||
|
||||
While all of the browsers have their strengths, Firefox stands out to me as a power user. It allows me
|
||||
|
||||
I’ve always found myself fiddling with social addons that allow me to connect to my social networking sites and easily share nuggets in the web that I discover with my friends. Never really could find anything good enough. And then there was Flock. This is by far my favorite browser. It has all of the power and robustness of Firefox, plus built in support for all of my favorite websites. It even comes with a Blog Writer client. Much more useful than what I’ve been resorting to using in Linux, [Drivel](http://www.dropline.net/drivel/). Doesn’t compare to [Windows Live Writer](http://windowslivewriter.spaces.live.com/) still, but hey, I’m not complaining. It also has a wonderfully useful web clipboard. If you are a user of any major social networking site, like to share links with people, use Google Apps, Delicious, or anything else, this browser is or you. Oh, and it’s compliant with almost all of Firefox’s plugins and addons. So what do you have to loose?[Flock](http://flock.com/).
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Oh, and just the the record, anyone who considers [Firefox](http://www.mozilla.com/firefox/) or [Chrome](http://www.google.com/chrome)[/ium](http://code.google.com/chromium/) an “Operating System” should be shot… Yes, I’m being seirous. People have actually written this. Seriously… Why? Becacuse we need better journalists in the Tech industry, that’s why. [Ted Dziuba](http://teddziuba.com/), thank you for [this](http://teddziuba.com/2008/09/a-web-os-are-you-dense.html).
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# The FBI Releases Code Challenge to Hackers
|
||||
|
||||
The Federal Bureau of Investigation, that's right, the FBI, has just released a [Code Challenge](http://www.networkworld.com/community/node/36704) for hackers around the world! Here are the details:
|
||||
|
||||
|
||||
> A relatively basic form of substitution cipher is the Caesar Cipher, named for its Roman origins. The Caesar Cipher involves writing two alphabets, one above the other. The lower alphabet is shifted by one or more characters to the right or left and is used as the cipher text to represent the plain text letter in the alphabet above it.
|
||||
|
||||
Plain Text
|
||||
|
||||
|
||||
> A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
||||
|
||||
Cipher Text
|
||||
|
||||
|
||||
> B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
|
||||
|
||||
In this example, the plain text K is enciphered with the cipher text L. The phrase 'Lucky Dog' would be enciphered as follows:
|
||||
|
||||
Plain Text: L U C K Y D O G
|
||||
|
||||
Cipher Text: M V D L Z E P H
|
||||
|
||||
Ciphers can be made more secure by using a keyword to scramble one of the alphabets. Keywords can be placed in the plain text, the cipher text, or both, and any word can be used as a key if repeated letters are dropped. Here the word SECRETLY (minus the second E) is used as the plain text keyword.
|
||||
|
||||
Plain Text
|
||||
|
||||
S E C R T L Y A B D F G H I J K M N O P Q U V W X Z
|
||||
|
||||
Cipher Text
|
||||
|
||||
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
||||
|
||||
The FBI of course doesn't always invite folks to break code on its site. In fact last spring a consultant managed to access the bureau's National Crime Information Center database.
|
||||
|
||||
Is this a ploy to get the hacker community back to its roots? Most certainly we seem to loose touch to what this is all about. Or perhaps just an elaborate way to recruit future employees due to the inability to advertise for positions?
|
||||
|
||||
What do you think?
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Aesthetics: More Than Meets the Eye
|
||||
|
||||
I was doing some routine poking around the [TextMate Wiki](http://wiki.macromates.com/Main/HomePage) tonight, and I came across an [amazing mod](http://jason-evers.com/code/code-like-i-do). Amazing. After installing it, my favorite editor looked brand new, and I started hacking away at code for hours.
|
||||
|
||||
Customized (yet clean) interfaces really help me focus on my work. Working in an IDE with a black background just feels right to me. I wasn't nearly as satisfied with my .NET development when using the default [Visual Studio color scheme](http://weblogs.asp.net/infinitiesloop/archive/2006/08/06/Join-the-Dark-Side-of-Visual-Studio.aspx). I found the dark and everything became better. I felt more at home. I looked at it and it made me smile.
|
||||
|
||||
Just a thought.
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Amazon is Amazing... Most of the Time
|
||||
|
||||
Again and again I'm really amazed at Amazon. I discovered [Amazon S3](http://aws.amazon.com/s3/ "Amazon S3 - Elastic Storage!") a few months ago, and was really impressed with the service. For mere pennies a month, you can have literally an unlimited amount of "cloud" storage. Phenomenal. After using the service for a while, I realized that they allow you to name an S3 bucket a domain name, and if the DNS Zone File of that domain contains an A record that points to Amazon's AWS servers, your bucket will automatically be available at that domain. This is amazing. *\[media.kennethreitz.com is actually an S3 Bucket]*
|
||||
|
||||
A few other services allow you to do this and I've never seen it go wrong: Amazon S3 and Cloud Front, [Posterous](http://posterous.com), [Tumblr](http://tumblr.com), and [Blogger](http://blogger.com), to name a few. *\[http://posts.kennethreitz.com is a Posterous site].*
|
||||
|
||||
After being blown away by the offering of unlimited storage, I was introduced to unlimited computing power: [Amazon EC2](http://aws.amazon.com/ec2/). All I can say is about this is this is every Hacker's dream come true. I mean seriously. I can instantly command 500 Xeon\-powered linux machines to do whatever I like for an hour, and then suddenly have them all disappear off the grid and it will cost me a total of about $10\. Seriously. Wow.
|
||||
|
||||
|
||||
> All excuses are now gone. The possibilities are **limitless**. Why aren't more people taking advantage of this wonderful service?
|
||||
|
||||
I then was introduced to their Affiliate program. If you provide a link to an Amazon.com sales listing, and someone purchases something from your link, you will receive a percentage of that sale. Genius! Screw using Google Adwords, this is a great idea. I did a few tests on Twitter. I posted one link, and within about 15 minutes, I had over 100 clicks to the Amazon listing.
|
||||
|
||||
I'm pretty surprised at what i've read recently, however. Apparently Amazon doesn't want you to use their affiliate links on mobile devices? What a missed opportunity. I wonder why this is? It must be some legal issues... I mean, Amazon makes money from affiliate links \- why would they want to limit them?
|
||||
|
||||
Leave a comment if you have any thoughts on this.
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# Apple + Developers = Earnings
|
||||
|
||||
**Apple, Inc** reported their [highest earnings ever](http://www.businessweek.com/technology/ByteOfTheApple/blog/archives/2009/10/apple_stock_hit.html) today.
|
||||
But, Why? Because they have proven that thoughtful design and attention to every minute detail will always win in the end.
|
||||
|
||||
Because they have shown that designing with both developers and users equally in mind is essential.
|
||||
|
||||
Because they noticed that being remarkable isn't about being the go\-to guy all the time.
|
||||
|
||||
Because they realized that it's okay to do not have the biggest market share.
|
||||
|
||||
Because they realized there is a balance. And they found it.
|
||||
|
||||
Because they make the best laptops around.
|
||||
|
||||
Because they lead a tribe of people.
|
||||
|
||||
So, Congratulations Apple.
|
||||
|
||||
You deserve it.
|
||||
|
||||
Really.
|
||||
|
||||
Kenneth Reitz
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# Asynchronous Google Analytics!
|
||||
|
||||
Google Analytics now supports Asyncronous loads, which allow the browser to continue loading content while **ga.js** is being loaded. Now it's safe to put the script tag in the `<head>` for you XHTML STRICT junkies.
|
||||
|
||||
**Here's the new code to do so:**
|
||||
|
||||
var \_gaq \= \_gaq \|\| \[];\_gaq.push(\['\_setAccount', 'UA\-XXXXX\-X']);\_gaq.push(\['\_trackPageview']);
|
||||
|
||||
(function() {var ga \= document.createElement('script');ga.src \= ('https:' \=\= document.location.protocol ?'https://ssl' : 'http://www') \+'.google\-analytics.com/ga.js';ga.setAttribute('async', 'true');document.documentElement.firstChild.appendChild(ga);})();
|
||||
|
||||
\#\# WordPress Plugin UpdateI love this new code clip so much, I decided to write a WordpPress Plugin for it. Enjoy!
|
||||
|
||||
* \[GitHub Project Page](http://github.com/kennethreitz/async\-google\-analytics\-wordpress\-plugin)
|
||||
* \[Direct WordPress Plugin](http://github.com/kennethreitz/async\-google\-analytics\-wordpress\-plugin/zipball/master)
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Back to What I Really Love
|
||||
|
||||
A couple of months ago, I took a position at a company that tailors Microsoft SharePoint solutions.The business model was very strong (and successful), the work was challenging, and there was lots of opportunity.
|
||||
|
||||
At the end of the day though, I just couldn't get past one thing: Microsoft and.NET. This is not stuff that I wanted to spend the rest of my life.
|
||||
|
||||
The company offered very generous compensation for Microsoft Certification – but what good does that do me?
|
||||
|
||||
I could do it, but it would only be for the money. I love working with software of all kinds, but the development I was doing did not sharpen my skills in any way.
|
||||
|
||||
So, I decided that the longer I stayed, the more I would simply be delaying my leaving. So another opportunity came up, and I decided to take it. I am now a developer working with PHP, Symfony, Java, Groovy, Grails, Apache, and more. The list grows every day.
|
||||
|
||||
Now life is good. It's never been better in fact.
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Best CSS Reset Around
|
||||
|
||||
Lets face it, cross\-browser CSS can be a real pain. This helps.[http://gist.github.com/260318\.js](http://gist.github.com/260318.js)
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Cloud Computing: Yin and Yang
|
||||
|
||||
Cloud computing enables us. Amazon's EC2 allows anyone in the world to have instant access to incredibly powerful high\-end servers that would usually cost tens of thousands of dollars for pennies on the dollar.\#\#Life is good.
|
||||
|
||||
Of course, people use this technology for both good and bad. In fact, a few days ago, someone wrote a tutorial for [Cracking PGP with an Amazon EC2 instance \& EDPR](http://news.electricalchemy.net/2009/10/cracking-passwords-in-cloud.html). Again, life is good.
|
||||
|
||||
**Remember:** if you create an successful open door web service, all people, good and bad, will come.
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Contact Syncing for Massive Productivity Booster
|
||||
|
||||
Google significantly increased my quality of life recently. How? Let me explain.
|
||||
|
||||
While I am a firm believer that cloud computing should *never* be viewed as a replacement for the current desktop/ model, I must say that I am now a **huge** fan of storing my data on the internet. Not all of my data, keep in mind, but information that needs to be accessed by multiple computers, of course – but that goes without saying.
|
||||
|
||||
I have always had the problem of not being able to keep track of all my data. I switch computers and operating systems so often, I can't keep track of my contacts at all. And when I update one, I have to go through and update many different databases – not the most efficient method.
|
||||
|
||||
So, the ultimate solution is – obviously – to consolidate all of my contacts into one database. I used to keep all of my contacts on my Samsung Blackjack cellphone. This worked well, since I could easily sync it with a computer. This caused a problem, however: I could only sync it with one system. If I was at work or on another system, I had no way to get to my friend's email addresses.
|
||||
|
||||
Last month, Google Contacts started to support Exchange Syncing, which happens to work *flawlessly* with my Windows Mobile 6\.1 install.
|
||||
|
||||
My life will never be the same. Thank you, Google. I am eternally grateful.
|
||||
|
||||
More details soon!
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Convert a List of Strings to UTF-8 in Python
|
||||
|
||||
If you'd like to learn more about programming, [contact me](/contact-me/) for a one\-on\-one lesson.
|
||||
|
||||
def utf8ify(list):'''Encode a list of strings in utf8'''return \[item.encode('utf8') for item in list]
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Crossing Over to the Dark Side
|
||||
|
||||
Well, I've done it. I've crossed over. To .NET.I will continue to be a complete open\-source junkie of course, butduring the work hours, I will no longer be working with PHP and Python.I will now be working with .NET and SharePoint.
|
||||
|
||||
I was presented with a rather good reason for this actually:
|
||||
|
||||
"Using SharePoint gives our clients a tremendous amount of security –they can trust that if, for whatever reason, something were to happen tous, their software could still be serviced by someone else." That'scertainly justifiable and understandable. That's a pretty good ideaactually. I like it.
|
||||
|
||||
After looking into ASP.NET, I was actually quite surprised. The code isa lot cleaner than PHP. It looks rather powerful actually.
|
||||
|
||||
Anyway, that's why I've crossed over. No hard feelings :)
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# CSS With a Hint of DRY
|
||||
|
||||
I am a DRY (*Don’t Repeat Yourself*) programmer. I’m not positive, but I most likely inherited my love for this concept from my intensive Python immersion. I'm so grateful for it. Anyway, DRY is an essential stage of any developer's workflow. It drastically enforces good structure, and significantly increases your logical skills. As with everything in life, there’s a time and place for DRY. Object oriented programming is one of those places.\#\# CSS Is Not DRYLet it be said: CSS is *not* a programming language. It is *not* a programmer’s language. It is not supposed to be. It is a styling markup language. But for those of us who like to take a more structured and programmatic approach, CSS is far from ideal. I want my CSS to do math. I want it to be dynamic. So, that's where fun little libraries come in to play that generate CSS on the fly based on logic and rules!I implore you to take a look at [CleverCSS](http://sandbox.pocoo.org/clevercss). The awesome Python CSS generator. It supports variables, code manipulation, inheritance, and oh, so much more. I’ll be writing a Django helper module soon that generates this CSS on the fly.\#\#\#See Also:There is also [SASS](http://sass-lang.com), or [Syntactically Awesome StyleSheets](http://sass-lang.com). I must credit it: it seems to be the originator of the concept, has a significantly cooler name, and is a bit more widely accepted in the world.Oh, but that’s not written in Python, is it?
|
||||
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# Dear Borders: I hate you
|
||||
|
||||
Dear Borders (and Starbucks subidary Seattle's Best Coffee), You have a lovely book store. Quite lovely.
|
||||
|
||||
I love the books you sell. I love the music you play. I love the coffee you serve. I love the Moleskine Notebooks you sell. Everything about your store tailors itself perfectly to people like me. You strive to make a person feel intellectual and important, and that is marketed almost flawlessly.
|
||||
|
||||
You seem to have forgotten one key demographic, however.
|
||||
|
||||
If a tech\-savvy web developer wants to go and play with his newly\-developed web design skills he obtained from books out of your technology section, he is free to bring his laptop into your lovely café. Awesome. You even offer power outlets. All the sweeter.
|
||||
|
||||
So, he decides to bring his laptop in one day to play with his newly purchased python web development book. He connects to your aptly named “Borders” network, and types “http://google.com” into his address bar, excited to be connected to his world in such a convenient location.
|
||||
|
||||
His face of joy then abruptly changes, however, when he realizes that he has to fork out SEVEN DOLLARS to use the network.
|
||||
|
||||
Seven Dollars.
|
||||
|
||||
You could feed a starving child in Africa for a WEEK with $7\.
|
||||
|
||||
There is no justification. There is no excuse. This is downright stupid on your part.
|
||||
|
||||
Do you have any idea how much business you are turning down by doing this? If your stores offered free wifi, chances are, I’d be there three to four times every week, buying coffee every time, and most likely a book every other time. That is a LOT of business. And there are many more people like me. Many more. People like me love your stores. We love the atmosphere. We love the books. We love the knowledge. We love the Moleskines.
|
||||
|
||||
And we also love the internet. Apparently, more than you know.
|
||||
|
||||
I understand that you have an agreement with AT\&T, and i’m sure they have wonderful salesman that assure that you are offering a service to your employees. They are wrong. Very wrong.
|
||||
|
||||
I know for a fact that I’d be a customer time and time again if you offered this service for free. And I’m sure your café and book sales would go up at least 15%. From what I understand, your profits are decreasing heavily at the moment. I believe your stock is currently worth $3\.34 a share. Impressive.
|
||||
|
||||
So what do you have to lose?
|
||||
|
||||
In the meantime, I’ll be taking my daily $7 coffee excursions to Panera, where wifi is free.
|
||||
|
||||
Kindest Regards,
|
||||
|
||||
Kenneth Reitz
|
||||
|
||||
# Border's Respnse
|
||||
|
||||
|
||||
> Dear Kenneth,
|
||||
>
|
||||
> Thank you for contacting Borders Customer Care regarding Wifi service. We welcome your comments, as we rely on feedback from customers to improve on the services and products we provide.
|
||||
>
|
||||
> Borders stores will be offering free Wifi service and all of the stores will have it by mid October. We appreciate your positive comments about Borders stores. We are always glad to hear from customers, but it is especially nice when a happy customer takes the time to let us know that they're enjoying the rewards and services we offer.
|
||||
>
|
||||
> If you have any other questions or concerns, please don't hesitate to contact us.
|
||||
>
|
||||
> Sincerely,
|
||||
>
|
||||
> Kathy \> Borders Rewards Customer Care
|
||||
|
||||
## My Reaction Well, I didn't see that coming.
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Django ORM for Online Payment Systems?
|
||||
|
||||
I’ve been spending an increasingly large amount of time with some rapid development frameworks, primarily Django (Python!), Grails (Groovy / Java), and Symfony (PHP). I’ve been enjoying it. Alot. Life has never been better.
|
||||
|
||||
DRY tactics. Code portability. Who likes to repeat themsleves anyway? It’s a great idea.
|
||||
|
||||
My favorite concept to date is the Object Relational Model (ORM). Database\-agnostcisty is fantastic. Not sure what database you want to use? Worry about it later. A client wants to switch to MySQL because SQLServer is costing too much? No problem. How much of my codebase will I have to change? About six charecters. Wow.
|
||||
|
||||
So why not take this concept, and apply it elsewhere? I’m currently doing some work for a startup, and we are having trouble deciding which online payment service to use/support: PayPal, Amazon Payments, or Google Checkout.
|
||||
|
||||
My solution is to write a webPaySystem module that integrates all of these payment systems into one single class. But, before I spend the time to write this, I’d like to extend this question to the Python / Django community:
|
||||
|
||||
Would you find this useful in your web (and business desktop) applications?
|
||||
|
||||
Comment and let me know what you think!
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Django Remote Development Server
|
||||
|
||||
 If you've worked with Django much at all, I'm sure you've had this problem: wanting to access the built\-in development webserver remotely. Typically, this integrated mini\-server ignores all requests from any IP Address other than 127\.0\.0\.1 . If you run the following command, however, it will be accessible remotely. VERY useful for remote dev work.
|
||||
|
||||
|
||||
```
|
||||
./manage.py runserver 0.0.0.0:8000
|
||||
```
|
||||
Enjoy!
|
||||
|
||||
[Development](http://technorati.com/tag/Development), [Django](http://technorati.com/tag/Django), [Python](http://technorati.com/tag/Python)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Do You Develop Software or Experiences?
|
||||
|
||||
I read an \[interesting article](http://www.antipope.org/charlie/blog\-static/2009/12/21st\_century\_phone.html) today on Apple's marketing strategy. A certain section stood out to me, regarding their hardware manufacturing:
|
||||
|
||||
|
||||
> Apple is an experience company. They're a high\-end marque; if they were in the automobile business, they'd be BMW, Mercedes, and Porsche rolled into one. They own about 12% of the PC market in the USA... but 91% of the high end of the PC market (laptops over $999, desktops over $699\).
|
||||
|
||||
— Charlie Stross of [Antipope.org](http://www.antipope.org/charlie/blog-static/2009/12/21st_century_phone.html).
|
||||
|
||||
\#\# The Point:\[Seth Godin](http://sethgodin.typepad.com/) and \[37Signals](http://37signals.com/) both recommend marketing yourself to the early adopters and geeks. Apple, however, does the opposite. They market themselves to the middle market — the incredibly non\-technical. The geeks come on their own, with no marketing needed. They love it. And this makes Apple \*enormously\* successful.
|
||||
|
||||
\*\*Develop your software/experience for the masses\*\*. Make the geeks love it, but make them find it on their own. Just a thought.
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# DRY and Pythonic jQuery?
|
||||
|
||||
Apparently, **groovy:spring:java** as **jabs:jquery:javascript**. As if jQuery wasn't short enough already.
|
||||
|
||||
[Jabs](http://github.com/collin/jabs) lets you write this jQuery code:
|
||||
|
||||
jQuery(function() {var $ \= jQuery;
|
||||
|
||||
$("\[default\_value]").blur(function() {var self \= $(this);if(self.val() \=\=\= "") {self.val(self.attr("default\_value"));}}).focus(function() {var self \= $(this);if(self.val \=\=\= self.attr("default\_value")) {self.val("");}}).blur();});
|
||||
|
||||
By typing this:
|
||||
|
||||
$ \[default\_value]:blurif @value \=\=\= ""@value \= @default\_value:focusif @value \=\=\= @default\_value@value \= "".blur
|
||||
|
||||
[HAML](http://haml-lang.com/) tactics FTW.
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Early Adoption
|
||||
|
||||
The world is full of people who wait for people to tell them what to use next. Especially on the internet.
|
||||
|
||||
Find (or create) something great before it's popular and show others – if your recommendation holds true, they will respect you for it. They will trust you. They will go to you when needed.
|
||||
|
||||
And that's why this site exists.
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Facebook Lite Open to Public!
|
||||
|
||||
It's official, [Facebook Lite](http://lite.facebook.com) was opened up to the US public about 10 minutes ago.
|
||||
|
||||
This slimmed down version of Facebook is wonderful for those of us on slow internet connections (or tethering from our iPhones), this is a dream come true.
|
||||
|
||||
Reminds me of the good ol' days, when I had to go to http://gmu.facebook.com to see my facebook friends.
|
||||
|
||||
Here you can see it in action:
|
||||
|
||||
[](http://s3.amazonaws.com/media.kennethreitz.com/facebook-lite-1.png)
|
||||
|
||||
[Try it out now!](http://lite.facebook.com)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Facebook Plugin for WordPress
|
||||
|
||||
[Blake](http://twitter.com/RealNerd), a PHP engineer at [Squidoo](http://squidoo.com), has a blog called [The Why and the How](http://www.thewhyandthehow.com/). You should check it out, he writes really good articles and shares great
|
||||
|
||||
My friend and coworker [Aaron Collegeman](http://aaroncollegeman.com/) decided to write a WordPress plugin that automatically replaces the built\-in WordPress commenting system with Facebook’s.
|
||||
|
||||
It is under active development and will eventually it will s backend upport storage of comments, but for now you can do everything from Facebook. In the meantime, you should a [grab a copy](http://code.google.com/p/wpfb/) and see it in action for yourself.
|
||||
|
||||
[Facebook Comments for Wordpress](http://code.google.com/p/wpfb/).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Facebook vs Twitter: A Critical Synopsis
|
||||
|
||||
For the sake of us all, lets take a look at two major social networks on the web today: [Facebook](http://facebook.com "Facebook") and [Twitter](http://twitter.com/kennethreitz).
|
||||
|
||||
Twitter is an information\-streaming application that is used by people in all walks of life. It functions, sometimes in roundabout ways, as an instant messenger, email client, alert system, and social networking connectivity tool. It also offers fantastic, powerful searching and heavily encourages all\-in\-all openness.
|
||||
|
||||
Facebook, when I was introduced to it, was an application that allowed users to create a simple page with information about themselves, and connected them with people they knew in real life. Users could send messages to one another, both privately and publicly, post links, and upload an unlimited number of photos. Or at least it was.
|
||||
|
||||
Recently, Facebook revamped their interface and introduced a reinforced concept of status updates being a "life\-stream" rather than a "summary of my week". Much emphasis is placed on what is going on *right now*, not what happened yesterday. This is great in my opinion – however, it totally changes what Facebook is for me. Prior to the change, when adding a friend, much emphasis was placed on adding relationship details for all of your friends. If you didn't know someone, Facebook wouldn't even allow you to keep them as a friend. Now, Facebook auto\-suggest people that it thinks you might know, and encourages the meeting of people through Facebook itself. Nothing wrong with that of course... I'm just showing how it has been changed.
|
||||
|
||||
There's a fundamental difference here: **Twitter changes with its users.**
|
||||
|
||||
It changes according to the trends of it's users. Twitter does absolutely nothing to influence they way its users use its services. In fact, it evolves *with* them. For example, Twitter allowed users to view when people @replied to their tweets by going to the @replies section of the user interface. In this section, you could see a list of all the latest tweets that started with '@yourtwittername' and see what people had to say to you. After a while, users started adding @replies everywhere in tweets, not just the beginning. So, twitter changed the algorithm, and now you can see when '@yourtwittername' is mentioned anywhere in a tweet. Genius.
|
||||
|
||||
**Facebook tries to change its users.**
|
||||
|
||||
When was the last time you heard a bunch of Twitter users complain about a newly implimented feature? and when was the last time you heard a Facebook user complain of a new feature or interface change?
|
||||
Yes, they complain constantly.
|
||||
|
||||
So, what is Facebook's purpose? To deliver useful content and introduce you to new people (while delivering ads), or providing a nice platform for friends to connect with eachother? If you ask me, Facebook's intended purpose is becoming less and less clear the longer that I use it.
|
||||
|
||||
Go Twitter.
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Fallibilism
|
||||
|
||||
Everyone seems to think that they are always right. It's pretty funny when you think about it. Because they aren't. At all. That's why I'm a falliblist. I believe that others are often right, and since I'm human, and prone to error, I'll always consider *anything* that anyone else has to say.
|
||||
But hey, *I could be wrong*. :)
|
||||
|
||||
[](http://xkcd.com/610/)
|
||||
@@ -0,0 +1,7 @@
|
||||
# Fizz Buzz in Python
|
||||
|
||||
Jeff Atwood of [Coding Horror](http://codinghorror.com) has developed a sure fire test to filter out *good programmers* from *bad ones*. It's called [the FizzBuzz test](http://www.codinghorror.com/blog/archives/000781.html), and it's a very simple problem to solve. Enjoy!If you'd like to learn more about programming, [contact me](/about) for a one\-on\-one lesson.
|
||||
|
||||
for i in range(1,101\):if not i % 15:print "FizzBuzz"elif not i % 3:print "Fizz"elif not i % 5:print "Buzz"else:print i
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Free Direct Download: Microsoft Office 2007
|
||||
|
||||
Have you ever had the problem of losing an installation CD? This happened to me the other day when I needed to install Microsoft Office 2007\. I found an easy solution, however, and I'd like to share it with you: Direct Downloads of Microsoft Office 2007 in *all* flavors. Completely legal! All you need is your legitimate key to install!
|
||||
|
||||
### Microsoft Office 2007 Installer Direct Downloads200903171513.jpg
|
||||
|
||||
* [Microsoft Office Enterprise 2007](http://download.microsoft.com/download/7/c/4/7c49b09b-d6f9-431d-9738-4c00aff11fc7/Enterprise.exe)
|
||||
* [Microsoft Office Professional 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30196/X12-30196.exe)
|
||||
* [Microsoft Office Small Business 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30283/X12-30283.exe)
|
||||
* [Microsoft Office Home and Student 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30107/X12-30107.exe)
|
||||
* [Microsoft Office Standard 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30263/X12-30263.exe)
|
||||
* [Microsoft Office Accounting Professional 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X13-40152/X13-40152.exe)
|
||||
* [Microsoft Office Groove 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30093/X12-30093.exe)
|
||||
* [Microsoft Office OneNote 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30151/X12-30151.exe)
|
||||
* [Microsoft Office Publisher 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30247/X12-30247.exe)
|
||||
* [Microsoft Office Visio Professional 2007](http://msft-dnl.digitalrivercontent.net/msoffice/pub/X12-30351/X12-30351.exe)
|
||||
|
||||
Enjoy!
|
||||
|
||||
NOTE: this is for **legal** installs only! You need a key to use any of these installers! If no key is provided, it will still be fully functional, but will be working in trial\-mode for a total of 30 runs.
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Free Incredible Color Scheme Designer
|
||||
|
||||
Being the programmers that we are, design isn't always listed as one of our stronger abilities. Every programmer should have a sense of design, however. Otherwise, every application you would ever use would be far less useful and be much less appealing. *Aesthetics are everything*.
|
||||
|
||||
ColorSchemeDesigner allows any user to create breathtaking Color Schemes for any purpose in it's quick and easy\-to\-use interface. It allows you to use the color wheel to make precisely correct schemes. Options include: monochrome, complimentary, traids, tetrads, analogical, and accented analogical schemes. All are fully customizable and mathematically correct.The site even allows you take your color scheme and test it out on a test page for web design. You can do anything from sharing the exact scheme to your friends, to downloading it as a Photoshop of Gimp Color Scheme, XML, or plaintext file. **It even will allow you to download your ColorScheme as HTML / CSS !** What a time saver!
|
||||
|
||||
Other services (like Adobe's [Kuler](http://kuler.adobe.com/)), aren't nearly this functional, and do not offer nearly as many features to its users. The best thing of all is it's *free*.
|
||||
|
||||
Give [ColorSchemeDesigner](http://colorschemedesigner.com "Amazing Color Scheme Designer!") a try!
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Generate a Random MAC Address in Python
|
||||
|
||||
If you'd like to learn more about programming, [contact me](/contact-me/) for a one\-on\-one lesson.
|
||||
|
||||
import random
|
||||
|
||||
def randomMacAddress():"""Returns a completely random Mac Address"""mac \= \[0x00, 0x16, 0x3e, random.randint(0x00, 0x7f),random.randint(0x00, 0xff), random.randint(0x00, 0xff)]return ':'.join(map(lambda x: "%02x" % x, mac))
|
||||
|
||||
if \_\_name\_\_ \=\= '\_\_main\_\_':print randomMacAddress()
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# GitHub + Strategy
|
||||
|
||||
GitHub is currently [down](http://github.com). And that is very sad. However, they have an [Awesome Angry Unicorn](http://github.com/images/error/angry_unicorn.png "Unicorn is angry.").And this unicorn makes me smile, even though I can't get to any of my projects.
|
||||
|
||||
If you're going to make a web application, give it some personality. This will not only keep your userbase entertained, but will serve as a nice insurance package when you let them down.
|
||||
|
||||

|
||||
@@ -0,0 +1,7 @@
|
||||
# Google Analytics + Intellegence
|
||||
|
||||
Google's super\-star flagship cloud\-based visitor tracking software, [Google Analytics](http://google.com/analytics), released a [new feature](http://1.bp.blogspot.com/_J20OFghLIP0/Sv2bgjlDn8I/AAAAAAAAAMA/kI-VHM7VRD0/s400/Intelligence_Report.jpg) recently. It's called [Intelligence](http://analytics.blogspot.com/2009/11/new-feature-spotlight-analytics.html).\#\#What They Have To Say
|
||||
|
||||
Your new hardworking assistant, Analytics Intelligence, can't replace you or a professional analyst. But, it can find key information for you and your professional analysts \-\- so that your team can focus on making strategic decisions, instead of sifting through an endless sea of data.Intriguing.
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Google Launches Public DNS Service
|
||||
|
||||
Google just launched a [Public DNS Service](http://code.google.com/speed/public-dns/), much like OpenDNS.\#\#\#Let me Try!
|
||||
|
||||
To give it a try, change your computer (our router)'s DNS servers.
|
||||
|
||||
`DNS Servers: 4.3.2.1, 8.8.8.8, 8.8.4.4`
|
||||
|
||||
I expect this to have significantly greater adoption rates than OpenDNS, since the IP Address of the servers are much easier to remember.
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Google's Gotta New Face
|
||||
|
||||
 Want to try it? Go to [google.com](http://google.com) and paste this into your browser's address bar:
|
||||
|
||||
javascript:void(document.cookie\="PREF\=ID\=20b6e4c2f44943bb:U\=4bf292d46faad806:TM\=1249677602:LM\=1257919388:S\=odm0Ys\-53ZueXfZG;path\=/;domain\=.google.com");
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
# How to Run Microsoft Office 2007 in Ubuntu Linux 8.10
|
||||
|
||||
 Wouldn't it be lovely to have a nice, clean installation of Microsoft's Office 2007 Suite to run on your Ubuntu Linux Distribution? For some people, this is the only thing that truly holds them back from an all\-Linux environment... But not anymore! We have compiled a nice, concise set of instructions to help guide you along. ### Install Wine:
|
||||
|
||||
WINE (**W**ine **I**s **N**ot an **E**mulator) is an application layer for Linux that interprets the Windows API and DLLs into native Linux commands. This allows for programs made for Windows to be run in Linux!In order to run Office 2007, Wine 1\.1\.9 (or newer) is **required.** It is currently in a development release. If you don’t have it installed already (this is very likely), go ahead and type the following commands, which will set it up for you:
|
||||
|
||||
|
||||
```
|
||||
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
|
||||
```
|
||||
|
||||
```
|
||||
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/intrepid.list -O /etc/apt/sources.list.d/winehq.list
|
||||
```
|
||||
|
||||
```
|
||||
sudo apt-get update
|
||||
```
|
||||
|
||||
```
|
||||
sudo apt-get install wine cabextract
|
||||
```
|
||||
**NOTE**: *On non\-Debian based systems, this will not work. Please refer to* [*this site*](http://www.winehq.org/site/download-deb "WineHQ Installation Procudures") *for installation instructions.*
|
||||
|
||||
You should now have an installation of Wine 1\.1\.9 installed on your system. To confirm the version of Wine installed, type the following:
|
||||
|
||||
|
||||
```
|
||||
wine --version
|
||||
```
|
||||
### Install winetricks:
|
||||
|
||||
[Winetricks](http://www.kegel.com/wine/winetricks "Winetricks Page") is a small SH script which will go on the internet and automatically fetch and install Microsoft DLLs and Libraries into Wine with almost no hassle at all! To download it directly, type the following commands:
|
||||
|
||||
|
||||
```
|
||||
wget http://www.kegel.com/wine/winetricks
|
||||
```
|
||||
|
||||
```
|
||||
chmod +x ./winetricks
|
||||
```
|
||||
### Utilize winetricks:
|
||||
|
||||
This will setup all necessary libraries and DLLs that Office 2007 will need to run properly:
|
||||
|
||||
|
||||
```
|
||||
./winetricks gdiplus riched20 riched30 msxml3 msxml4 msxml6 corefonts tahoma vb6run vcrun6 msi2
|
||||
```
|
||||
Please be patient while the downloads complete. This script is working hard and is saving hours of your time.
|
||||
|
||||
### Insert Office 2007 Disk and Run Setup!
|
||||
|
||||
Now that we have all of the DLLs necessary to run the Installer, let us do so!
|
||||
|
||||
|
||||
```
|
||||
wine pathToCD/setup.exe
|
||||
```
|
||||
From here on out, you should be good to go! The installer should run and install everything just as if it was a Windows system!
|
||||
|
||||
If you have any problems, ask, and we'll try to help you out as much as possible!
|
||||
|
||||
UPDATE: Lost your CD? [Download the installer](/blog/free-direct-download-microsoft-office-2007) for free!
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# I Finally Got a MacBook
|
||||
|
||||
Yesterday I stopped by the Apple store in Fair Oaks Shopping Center in Fairfax, VA and finally purchased a MacBook. I've been wanting one for quite a while – ever since I fell deeply in love with OS X after adopting an old 12" G4 PowerBook I've been using for the past 5 months.
|
||||
|
||||
I decided to get the 2\.5 GHz 13" MacBook Pro. This will be my full\-time machine for the next 4\+ years hopefully. With specs this good and a case this sturdy, I see no reason why it shouldn't last me for years to come.
|
||||
|
||||
I am thoroughly pleased with the purchase so far. If you've been planning on getting a MacBook, *now is the time to get one*. The base line 13" Aluminum Pro model is only $1100 right now – cheaper than most of the refurbished polycarbonates with lower specs. Anyway, I'll post lists of my software choices (including TextMate Plugins and Bundles) soon for those interested. Stay tuned!
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# if (TextMate == 42)
|
||||
|
||||
**{**I've had some pretty extensive experience using every major OS for various forms of development and end\-user work. And just like every other programmer in the world, I certainly have my opinions, likes, and dislikes of every platform (some are a lot closer to perfection than others of course). Text editors are the same way. Everyone loves one or two, and hates all the others.
|
||||
|
||||
There are others of course: I actually know a guy who edits his live "enterprise\-level php applications" with Pico. And he says he has been for 10 years (Note that Pico has only been out for 9 years). What a joke.
|
||||
|
||||
|
||||
> Pico is not a programmer's tool.
|
||||
|
||||
But anyway: For literally decades, there has been a great war between unix developers. [VI(m) vs. Emacs](http://en.wikipedia.org/wiki/Editor_war "Explantion of Editor War").
|
||||
|
||||
I am most certainly a proponent of VI, and probably always will be. It's a fantastic editor, and it suits my needs pefectly. And for those of us who need something a little more streamlines there's always [CREAM](http://cream.sourceforge.net/ "CREAM Texteditor Homepage"), which is a fantastic implementation of a heavily customized GVIM that can handle literally anything you throw at it with little or no fuss.
|
||||
|
||||
Now all software, in any context, is a tool. Nothing more. VI and EMACS and all others exist for one reason: to make a programmer's life easier. That's why they were invented, and that's why they are maintained.
|
||||
|
||||
Now, I still use VIM all the time in my day\-to\-day life. Its wonderful to SSH into just about any \*nix server on the planet, and have VIM sitting there, waiting for me to tell it what to do. It helps me to feel at home. I used to use it full\-time for all of my coding on my workstations as well. I was passionate about it. I'd tote VIM all the time. VIM is great. It seemed so. It used to.
|
||||
|
||||
Used to. And then there was TextMate. TextMate. TextMate. Have a mac? [Try it](http://download-b.macromates.com/TextMate_1.5.8.dmg). Now. [Download it](http://download-b.macromates.com/TextMate_1.5.8.dmg). [Buy it](http://license.macromates.com/). Pirate it, I don't care. **Your life will never be the same.**
|
||||
|
||||
TextMate is seriously the best piece of software I have come across in a very very long time. I can code incredibly fast with it. It helps me to become a better programmer. We all agree that you should NEVER Copy and Paste code: but using code snippets is different. It's like... An experience I cannot describe.
|
||||
|
||||
I'll be purchasing a new laptop soon, and to be honest with you, the fact that I'll have TextMate on a mac makes me sure without a doubt to get an Apple computer. That and the fact that Mac OS X is a FANTASTIC operating system)
|
||||
|
||||
|
||||
> TextMate is a text editor like no other.
|
||||
|
||||
There's nothing better. And there never will. I know that's quite an extreme statement, but it's true. I'll do a full review eventually. I'm just so blown away. Sorry for my thoughts being all over the place in this post. I can't think strait. [Textmate](http://macromates.com/ "TextMate Product Page").
|
||||
|
||||
**}**
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Instapaper: Best Web App Ever Created
|
||||
|
||||
Out of all the startup applications that I have ever used, [Instapaper](http://instapaper.com) (from the creators of micro\-blogging site [Tumblr](http://tumblr.com)) is by far the most innovative and useful. I use it on a daily basis. It not only saves me hours upon hours of time, but it allows me to focus more on the task at hand and boosts my productivity levels through the roof.
|
||||
|
||||
Whenever I'm surfing the web, I have a bad habit of clicking open new tabs almost constantly. It's not uncommon for me to easily have over 60 tabs open, and in the process of sorting through all these wonderful links, the task at hand drowns in a sea of information.
|
||||
|
||||
Well, I don't have this problem anymore, thanks to Instapaper. When I find something interesting online now, and it's not related to the task at hand, I hit the nifty "read later" bookmarklet. This ads it to my list of unread marertial on Instapaper.com. I can go there at any time and read any of the pages that I didnt' have time to read before!
|
||||
|
||||
Seriously guys, this is amazing.
|
||||
|
||||
What's better yet, is that they have an iPhone app. I can read my synched list of hundreds of unread pages at any time in Kindle\-quality formated pages. Even without an internet connection.
|
||||
|
||||
**Surely life doesn't get better than this.**
|
||||
|
||||
**[Instapaper](http://instapaper.com)**
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# jQuery Snippet #1: URL Parameter Fetching
|
||||
|
||||
I've decided to provide you with a new data stream. The jQuery Snippet of the Week. Enjoy.
|
||||
|
||||
// Read a page's GET URL variables and return them as an associative array.function getUrlVars(){var vars \= \[], hash;var hashes \= window.location.href.slice(window.location.href.indexOf('?') \+ 1\).split('\&');for(var i \= 0; i \< hashes.length; i\+\+){hash \= hashes\[i].split('\=');vars.push(hash\[0]);vars\[hash\[0]] \= hash\[1];}return vars;}
|
||||
|
||||
When executed, this function will return a beautiful string\-indexed array of your hacking pleasures.
|
||||
|
||||
Thanks, [Roshambo](http://snipplr.com/users/Roshambo/) and [jQuery HowTo](http://jquery-howto.blogspot.com/)!
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Media Temple and My Hosting
|
||||
|
||||
While I haven't used many hosting services, I must admit that I cannot imagine any being much better than Media Temple.
|
||||
|
||||
Alot of other people use terrible hosting that is less than $5 a month. Don't waste your time. Why are you even on the internet if you are only willing to invest $5 a month for your website?
|
||||
|
||||
MediaTemple's Dedicated Virtual server simply cannot be beat. For $50 a month, I get 20GB of storage, 1TB of transfer, and 2x 3GHz Xeon Processors. I have full root access to the machine, and can do whatever I want with it.
|
||||
|
||||
Now thats a hosting company. And that's a server. I'll host you on it if you want – you'll get all the benefits of the $50 a month server, without all the overhead \- plus one geek who's at your service 24/7\. And all for $20 a month.
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# MediaTemple (dv) Backup to S3 Script
|
||||
|
||||
\#\# The Problem\[MediaTemple](http://mediatemple.net) servers run the \*Plesk Control Panel\*, which \*has\* a reputation for having \*useless backups\*.
|
||||
|
||||
\#\# The Solution\* MySQL Dumps of all Databases and Tables\* All configured vhosts, zipped up\* Pushes it all to either S3 or FTP
|
||||
|
||||
Stick it in `/etc/cron.daily/`, and you'll be good to go. No more worries. No more headaches. Ever.
|
||||
|
||||
\*\*Note:\*\* Standard FTP is also supported.
|
||||
|
||||
\#\#\# The Code:
|
||||
|
||||
[http://gist.github.com/356120\.js](http://gist.github.com/356120.js)
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Microsoft Software Running in Linux
|
||||
|
||||
A few months ago, I wrote a small article for [ProgramerFish](http://programmerfish.com/) that was [featured on SlashDot's Front Page](http://tech.slashdot.org/article.pl?sid=09/03/17/2235215). It was amazing. Within hours, my post had thousands of views and hundreds of comments. People both loved and hated the idea.
|
||||
|
||||
But what made [my post](http://tech.slashdot.org/article.pl?sid=09/03/17/2235215) so popular? The fact that I showed people how to run a very popular piece of proprietary software in Linux. And this made a very large number of people very angry. Why though? Half the users of linux are openly against proprietary software.
|
||||
|
||||
But Certainly software is just a means to an end, not and end itself.
|
||||
|
||||
They failed to see the point. All they cared about was letting everyone else know how much they hated my idea.
|
||||
|
||||
I inadvertently started a mini\-controversy. And it got attention.
|
||||
|
||||
Sometimes the best way to be heard is to say something people don't like to hear.
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Mint.com: Money Management 2.0
|
||||
|
||||
There are a few things in life that I am naturally not good at. Some people fail at communication skills, while others [get angry and lash out at others for no reason](http://jwhsband.tripod.com/). I, however, like to spend all of my money. ALL of it. Every paycheck.
|
||||
|
||||
But thanks to this lovely website, that is going to stop now: [mint.com](http://www.mint.com).
|
||||
|
||||
Mint is an online budgeting and expense tracking system, which links to your bank account, credit cards, investments, and loan agencies. It's truly amazing what a little web 2\.0 site like that can do to change things around for you. I'm now saving my money and actually following a budget! Whenever I go over budget in a certain category, Mint notifies me immediately (via text message or email) of the indescrepency. And best of all, It shows me a pretty flow\-chart of what I spend all my money on! Data presentation is such a powerful tool.
|
||||
|
||||
I spend $53 a month on McDonalds? I had no idea!
|
||||
|
||||
So, come on! Go to [Mint.com](http://www.mint.com)! Give it a try! You might save a few bucks (or, like me, a few pounds!).
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# More Google Wave Invites! Get 'em now!
|
||||
|
||||
My Google Wave invite manna was just replenished!
|
||||
|
||||
If you'd like an invite, leave a comment and be creative!
|
||||
|
||||
Don't believe me?!\[](http://s3\.amazonaws.com/media.kennethreitz.com/wave\_invites\-63\.png)
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# New Design!
|
||||
|
||||
KennethReitz.com now has a new, rich theme, ready to take on a new life. And now iPhone friendly! My gloal? To become more well known that both [Joel Spolsky](http://joelonsoftware.com) and [Chris Parillo](http://chris.parillo.com). Nothing wrong with them, of course. I'm just as qualified though. And I think I might bring more to the table. Think I can do it?
|
||||
|
||||
I built the site with PHP on top of Wordpress with a hint of Coreylib and jQuery. A nice mix, if you ask me. I ditched [DISQUS](http://disqus.com/) in favor of IntenseDebate (as you can see below). DISQUS has a terrible media server that fails constantly. I can't stand that. [IntenseDebate](http://intensedebate.com) comes pre\-themed too, and, I must say, it looks *nice*.
|
||||
|
||||
The design was inspired by [haveamint.com](http://haveamint.com). They did a phenomenal job and I wanted to take what they had and build from it.Expect this to be update much more frequently. Hopefully daily.
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# OpenDNS Finally Monetizes
|
||||
|
||||
I've been a long\-time fan and user of **[OpenDNS](http://www.opendns.com)**, the free and often\-superior DNS Server. I've always noticed drastic improvements in my site loading speeds when using the service (due to drastically improved domain name lookups). There's really no downside to using the system. It's significantly faster than most ISP's own DNS servers, and it's updated far more frequently.\#\#Announcing OpenDNS MonetizationOpenDNS now offers a new service called **OpenDNS Deluxe**, which is tailed for the average household as well as smaller companies.\#\#\#Premium SupportIt allows users to have an ad\-free experience and have priority over free members.The price for this service is only $9\.95 a year. Not too bad!\#\#\#For Power UsersThey are also offering a very robust **OpenDNS Enterprise** edition for medium to fortune 500 companies. It has many advanced features such as: delegated administration, advanced reporting, and malware site protection.
|
||||
|
||||
\#\#\#PricingThat price isn't listed :)
|
||||
|
||||
[Sign up today!](http://www.opendns.com/start/)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# OSX + MAMP + Python + PHP + MySQL
|
||||
|
||||
If you're a web developer who uses MAMP in conjunction with anything other than PHP,
|
||||
I'm sure you've had quite a large bit of frustration involving multiple MyQL instances.
|
||||
|
||||
Not any more! This simple chain of commands will save you days upon days of troubles:
|
||||
|
||||
$ sudo rm /tmp/mysql.sock$ sudo ln \-s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
|
||||
|
||||
I only wish I had found this sooner.
|
||||
|
||||
Enjoy.
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# Python + Regular Expressions
|
||||
|
||||
Have you ever needed to parse through large amounts of text looking for a specific pattern? Patterns like “one capital letter followed by three numbers” or “dd/mm/yyyy”? This is known as Pattern Matching. Regular Expressions allow easy syntax for pattern matching, and is an invaluable skill to add to one’s toolkit, no matter what your area of expertise/practice is. Whether you’re writing a Compiler, Form Validator, Text Editor, Django Project, or Language Translator, Regular Expressions will always prove to be invaluable. Here is a very basic overview of some syntax: ‘d’ represents a digit. ‘s’ represents whitespace. ‘.’ represents any character. If you have worked with Python for very long, you are probably already familiar with the concept. Take a look at the following code:
|
||||
```
|
||||
print(“Rounded = %05d” % (42))
|
||||
```
|
||||
This makes sure that the digit printed has 5 digits, and will automatically add 0’s to compensate. If you understand this concept, then you shouldn’t have a problem. Perl\-style Regular Expressions are a very widely\-accepted implementation, and Python has built in support for this mini\-language! It’s easily accessible, so let’s get started. The included ‘re’ module will give us everything we need to get started:
|
||||
|
||||
|
||||
```
|
||||
import re
|
||||
```
|
||||
Lets give our new module a try! It will enable you to do anything you could ever want with regular expressions. Here’s a quick example of some basic use.
|
||||
|
||||
|
||||
```
|
||||
import restring0 = 'Kenneth Reitz is a cool guy!'regExp = r’kenneth[- ]?reitz’if re.match(regExp, string0, re.IGNORECASE):print “True”else:print “False”
|
||||
```
|
||||
This script takes the string ‘Kenneth Reitz is a cool guy’, and searches for ‘kenneth reitz’ inside of it. If ‘kenneth reitz’ is found within string0 (re.match compares the expression with the string), the script will print “True”, if not, it will print “False”. Additional parameters can be passed to the re.match function when needed. Note the ‘re.IGNORECASE’ flag used here – This tells the function be case\-insensitive. Once you master the regular expression syntax, you’ll realize how truly powerful they can be. The options become limitless and the usefulness becomes undeniable. Here’s another example:
|
||||
|
||||
|
||||
```
|
||||
import restring0 = '10.03.1988'regExp = r'^dd[./]dd[./]dddd?$'if re.match(regExp, string0):print 'True'else:print 'False/
|
||||
```
|
||||
When run, this script prints out “True”. If we were to change string0 to ‘10\.03\.88’, it would print “False”. Simple, isn’t it? Now, while a True/False return could be useful in certain applications (i.e. form validation), most of the time, we’re going to want to have a bit more information in order for our checks to be useful. We can tell Python to show us the data that matches our query. To do this, we’re going to have to break our expression up into different groups. In the date we have defined, there are three obvious groups we could separate this into: the day, month, and year. While defining a Regular Expression, you can use parentheses ‘()’ to define groups:
|
||||
|
||||
|
||||
```
|
||||
regExp = r’^(dd)././$’
|
||||
```
|
||||
This separates our expression into 3 separate groups. Python also supports turning a Regular Expression string into an heavily\-supported object with the re.compile() function. Once you define a string as a Regular Expression object, you can use the built in methods to preform powerful parsing. Now we can ask python what is in those groups:
|
||||
|
||||
|
||||
```
|
||||
import restring0 = ‘10.03.1988’regExp = re.compile(‘^(dd)././$’)regExpMatches = regExp.match(string0)if re.match(regExp, string0):print(“Day: %snMonth: %snYear: %s” % (regExpMatches.group(1),regExpMatches.group(2), regExpMatches.group(3)))else:print(“Invalid Date.”)
|
||||
```
|
||||
When executed, this script parses through our validated date, breaks it down into groups, and prints the following:
|
||||
|
||||
|
||||
```
|
||||
> Day: 10> Month: 03> Year: 1988
|
||||
```
|
||||
The possibilities are limitless! Here’s a quick run\-down of the re module’s functions, strait from the Python documentation for reference:
|
||||
|
||||
|
||||
```
|
||||
match: Match a regular expression pattern to the beginning of a string.search: Search a string for the presence of a pattern.sub: Substitute occurrences of a pattern found in a stringsubn: Same as sub, but also return the number of substitutions made.split: Split a string by the occurrences of a pattern.findall: Find all occurrences of a pattern in a string.compile: Compile a pattern into a RegexObject.purge: Clear the regular expression cache.escape: Backslash all non-alphanumerics in a string.
|
||||
```
|
||||
Remember, you can always type help(re) (after importing the re module) into the Python interpret to take a quick look at the module’s built\-in documentation. Good luck and happy coding!
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# Reflections on Windows 7
|
||||
|
||||
While I have not had the opportunity to try the latest Windows 7 Release Candidate, I have done a bit of reading on the subject. In my research, I have made the following observances
|
||||
|
||||
Vista was truly the worst operating system I have ever used in my life. It had some wonderful features, but everything was tied together so inefficiently It could bring the fastest computer around to its knees. I have used Vista on a rather powerful quad core system with over 4 GB of RAM, and it still responded poorly. There were a few things in Vista that were wonderful ideas, but executed horribly:
|
||||
|
||||
* Integrated Search and Indexing
|
||||
* ReadyBoost for superior caching
|
||||
* Windows XP Compatibility Mode
|
||||
* Application Pre\-Caching based on Observed User Activity
|
||||
* Bending over backwards for old API compatibility
|
||||
|
||||
Windows 7 looks promising, however. Take a look at the list of new improvements:
|
||||
|
||||
* Transparent Windows XP Virtualization Compatibility Layer
|
||||
* Responsiveness existent
|
||||
* Advanced Window Management Abilities
|
||||
* New Version of ReadyBoost
|
||||
* Integrated ClearType Tuning (about time)
|
||||
* Feature\-Packed Application Bar
|
||||
|
||||
Windows 7 is what Vista was supposed to be from what I understand. I'm keeping my fingers crossed, but I do look forward to this new Operating System. I sincerely hope that it truly is a great improvement. We'll see.
|
||||
|
||||
[](http://xkcd.com/528/)
|
||||
|
||||
[Microsoft](http://technorati.com/tag/Microsoft), [Vista](http://technorati.com/tag/Vista), [Windows 7](http://technorati.com/tag/Windows%207)
|
||||
@@ -0,0 +1,39 @@
|
||||
# Remote TextMate Development via SSH and Rsync
|
||||
|
||||
I am a huge fan of [TextMate](http://kennethreitz.com/blog/if-textmate-42/ "TextMate is God"). In my opinion, it is by far the greatest text editor ever conceived by mankind. It has a couple of shortcomings, however. One of which is that it has no built\-in FTP or SFTP support. Remote file editing is a bit of a bear here if you like to view folders in the project drawer on the side.
|
||||
|
||||
**Options for remote editing with TextMate:**
|
||||
|
||||
* Cyberduck FTP client
|
||||
* MacFUSE \+ SSHFS
|
||||
* Rsync \+ SSH
|
||||
|
||||
## Cyberduck
|
||||
|
||||
**The [Cyberduck](http://david.olrik.dk/files/Synchronize_remote_directory_rsync_ssh.zip) option is very very useful. While in the FTP client, you simply click "Edit in TextMate" and the client will download the file for you, open it in your editor, and – here's the awesome part – it automatically uploads the file every time you save it. This works great when working with one file at a time. The drawback, however, is when working with large projects. Toggling between many files can be an albatross without the project drawer (cyberduck understandably doesn't allow you to edit an entier folder), so MacFUSE is the next logical choice.**
|
||||
|
||||
## MacFUSE \+ SSHFS
|
||||
|
||||
[MacFUSE](http://www.pqrs.org/tekezo/macosx/sshfs/) \+ SSHFS works great, and allows you to mount an SSH folder as a mountpoint on your local system. VERY USEFUL. You can open this folder with TextMate. This is perfect for smaller projects. However, with larger projects, this makes opening the folder in TextMate almost unbearable as it checks the status of every single file. Too slow :P
|
||||
|
||||
## Rsync \+ SSH
|
||||
|
||||
**So here's the final solution: Rsync \+ SSH. This allows me to automatically sync my working copy with my server and allow for snappy file interactions without having insane latencies for starting up and bandwidth hogging!**
|
||||
|
||||
To remotely sync over SSH, run the following code:
|
||||
|
||||
|
||||
```
|
||||
rsync -avz -e ssh remoteuser@remotehost:/remote/dir /target/dir/
|
||||
```
|
||||
**Hint**: If your remote working copy is a subverson checkout, you can add
|
||||
```
|
||||
--cvs-exclude
|
||||
```
|
||||
into the rsync parameters, and it will exclude the ".svn" folders!
|
||||
|
||||
|
||||
|
||||
You can then open this directory in TextMate and make all the changes you want, and then sync after ! There is also a wonderful TextMate Bundle for [Remote Rsync \+ SSH within TextMate](http://david.olrik.dk/files/Synchronize_remote_directory_rsync_ssh.zip).
|
||||
|
||||
[Development](http://technorati.com/tag/Development), [OSX](http://technorati.com/tag/OSX), [rsync](http://technorati.com/tag/rsync), [TextMate](http://technorati.com/tag/TextMate)
|
||||
@@ -0,0 +1,19 @@
|
||||
# Revolution vs. Innovation
|
||||
|
||||
I've been thinking alot about this cloud\-computing "movement" that has been a buzz word for the past year and half or so. Being able to access anything from anywhere? Awesome, but I can do that now.I don't really get it why everyone's like "oh this will totally change computing as we know it". I beg to differ. Perhaps it will change the way we develop, or organize. But not how Desktops sell. Or eliminate the need for desktop software. The desktop is not going to die. Not from Azure, at least.
|
||||
|
||||
Amazon has EC2, Microsoft has Azure, and Google has AppEngine. These are fantastic tools, but they are nothing new – Just something someone else thought up, executed properly – followed through and improved upon.
|
||||
|
||||
Bill Gates came up with the idea of a true Software Company. This was revolutionary. Apple took Bill's model, and innovated. They improved upon it. And look at what's happening.
|
||||
|
||||
I really doubt that Google's new OS is going to bring us anything we don't have already. I do think, however, that it will build on things we already have.
|
||||
|
||||
When Chrome came out, it didn't offer anything that we didn't already have. Sure it's a fantastic browser, and I don't want to discount that. But the ability to run "web apps" as applications is nothing new. I had been using Mozilla's Prism for at least a year before Chrome was announced. And on OSX I had been using FluidApp, which is like Prism on Crack.
|
||||
|
||||
\> It seems like the smart thing to do in the tech world nowadays is to follow through with great ideas – even if they aren't yours.
|
||||
|
||||
Mozilla's team came up with the idea of running web apps at application with SSB's (single site browsers), but implementation of Prism was slow, and incredibly buggy. They didn't follow through. Google did. and Google won.
|
||||
|
||||
Maybe I don't need to come up with a revolutionary idea. Maybe I just need to be innovative.
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Sick of Wireless 5GB Caps
|
||||
|
||||
I live 15 miles away from a lovely town called Winchester, VA.
|
||||
|
||||
We do not have cable where I live. We also don't have DSL. That's right, no highspeed. All that we have is Satellite.
|
||||
|
||||
I'm a web developer, I need something a little more relable than a Satellite connection. 1000ms latency while you're trying to admin some server just doesn't cut it. It never will.
|
||||
|
||||
So I go to my local Verizon shop and pick up a Wireless broadband card. Much to my dismay, I learn that there's a 5 GB cap every month. 5 GB. Yes I'm serious? I use that in a day of casual browsing easily. And if I'm in the mood for some new software, I could easily use that in under an hour.
|
||||
|
||||
Turns out, all wireless broadband providers have this ridiculous bandwidth limitation. But I needed more bandwidth. So I made it happen.
|
||||
|
||||
After much masterminding, I came up with the perfect solution. Here it is :)
|
||||
|
||||
Sprint has the fastest 3G network around (plus I don't owe them $500 for going 1 GB over my cap like I do Verizon), so I chose them.
|
||||
|
||||
All that you need is a phone which supports the following:
|
||||
|
||||
* Windows Mobile 5 or 6
|
||||
* REV A Support
|
||||
* 802\.11b Support
|
||||
|
||||
In my case, I bought a Palm Treo Pro.
|
||||
|
||||
The next step is to download [WMWiFiRouter](http://www.wmwifirouter.com/), which allows you to share a given network connection over WiFi as a hotspot. It gives you enough control to select which data connection to use so you don't have to use Sprint's installed "Phone as a modem" connection (also capped).
|
||||
|
||||
Annndddd you're golden. Unlimited, broadband internet. Portable anywhere. No cap. Life is good.
|
||||
|
||||
Honestly, I shouldn't have to to go through such lengths to get such a service though. If I'm willing to pay for it, I really see no reason why they shouldn't offer it. The networks can certainly support it.
|
||||
|
||||
I always encourage everyone to look at both sides of the issue, but I can't possibly imagine what other side there is in this case. This is unacceptable.
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Smoothy TextMate Theme
|
||||
|
||||
I've said it before and I'll say it again: [TextMate](http://kennethreitz.com/blog/if-textmate-42/) is one fantastic text editor.
|
||||
|
||||
Now, I won't bore you with my passion for it, but if you've been reading my blog for long, you know how I feel.I do the majority of my development in TextMate, so theme choice is pretty important (others beg to differ but I disagree – aesthetics are everything). I tried a number of themes and found some really great ones. I'm always partial to darker schemes, so I settled on using Vibrant Ink. Fantastic theme. After a while, I needed a break from the dark background, and decided to find a more minimalist white\-based theme online. Much to my avail, I discovered that there are no good ligher\-colored themes out there for TextMate. Some come close, but nothing hits the nail on the head. So I made one.
|
||||
|
||||
I call it **Smoothy** ([screenshot](http://media.kennethreitz.com.s3.amazonaws.com/themes/Smoothy.tmTheme.gif), [download](http://media.kennethreitz.com.s3.amazonaws.com/themes/Smoothy.tmTheme)).
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
[TmTheme Download it here (65KB)](http://media.kennethreitz.com.s3.amazonaws.com/themes/Smoothy.tmTheme)
|
||||
|
||||
So, after a great number of hours, and realizing that making things coordinate on black is far easier than white, I settled on a theme that was colorful, functional, useful, triatic, and most\-importantly, not a piece of crap. Enjoy!
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Software Development vs. Computer Science
|
||||
|
||||
Most developer job applications that I see have a "BS in Computer Science or equivalent experience" requirement.
|
||||
|
||||
During my studies in Computer Science at [George Mason University](/blog/was-college-worth-it), though short, I learned a number of things. One of them was what a waste it was to learn such higher math in my field. I want to develop software, not develop the most cunning\-edge earth\-shattering algorithms. I don't want to reinvent ssh or find a better way to implement pgp keys. Of course, those things are necessary in certain fields, but not in mine.
|
||||
|
||||
I was taught that Programming is to Computer Science as a Telescope is to Astronomy. Its a tool to get to a means. If this is true, than why wasn't I taught how to make software?
|
||||
|
||||
Many Software Developers also have degrees in Electrical Engineering. Why is this? A CS degree doesn't seem to quite fit either. Perhaps we should make a separate degree for Software Development?
|
||||
|
||||
Computer Science should be separated from Software Development. They should be two different Degrees.
|
||||
|
||||
When I realized this, I started spending my time focusing on design rather than math. I learned a great deal of things from color theory to relational spacing and I found myself a new home: web design. It's a beautiful field. I started to spend my own time learning software development, rather than spending hours studying Calc 2\.
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# The Call for an Open Source Social Network
|
||||
|
||||
Lately, I've been tossing some ideas around that I feel would benefit the Social Web as a whole. It’s been going through some rough times lately, and I think it’s time for a change. Or so I thought.My first idea was to create a site that was rather decentralized, allowing all of your content to exist on other sites, but still allowing for you to interact without locking a user in. As it turns out, this site already exists. It is called [FriendFeed](http://friendfeed.com/kennethreitz). *[I love FriendFeed](http://kennethreitz.com/blog/friendfeed-is-awesome/)*. About a week after I decided that I wanted to get into it, [Facebook decided to purchase it](http://kennethreitz.com/blog/friendfeed-is-awesome/). How sad. They claim that it will still be up and running, but we’ll see if that proves to be the case (I have my fingers crossed). Pownce (which was powered by Python / Django) was shut down when it was purchased. I pray this not be the case.
|
||||
|
||||
Think about this now: **Why is that even an option**? Social networking is all about community and building tribes – So why do we need to have an organization in charge of our chosen communication platform?
|
||||
|
||||
**Here is my proposal**: Create a community\-driven, community\-developed, and community\-controlled social networking site that is truly open source.
|
||||
|
||||
The community could take care of everything from feature development to content control. No random shutting down, buy\-outs, or merges. No more random change of Privacy Policies or Content Ownership battles. No more worries. The only group of people who would be benefitted would be the community itself, not some company. An open minded network full of open minded people working for the better of the community.
|
||||
|
||||
# The Open Web of Flow
|
||||
|
||||
### **Step One**: Solid Platform Choice
|
||||
|
||||
The platform choice is the most important. You've seen what happens when the wrong tool is chosen for the job: look at Twitter: Bad Planning. We're all familiar with the Fail Whale but we shouldn't. At all. So what do we use? There's an array of options. .NET? HAHA! Did you know that there's even [a social platform built on top of Microsoft's Sharepoint](http://membertomember.com/)? I bet you didn't. I've installed it a number of times. It's fantastic (for people who need it). But we don't. At all. What type of open source project aside Mono is driven by NET developers anyway? They are in an entirely different mindset than us. Anyway, the answer is obvious: Django on a LAMP Stack (Linux \+ Apache \+ MySql \+ Python). We can all agree that Python is freaking amazing. And it's certianly not going anywhere any time soon. I think google has proven time\-and time again that Python is the language for just about any job. And when Google's unlayden\-swallow project is complete, all (typically negligible) performance issues will be eliminated. Done.
|
||||
|
||||
### **Step Two**: Basic Information Architecture
|
||||
|
||||
We need to decide how the whole system will work. FriendFeed has an excellent system in place. Lets use it. Users can tie everything in from all of their other websites and steam it on their profile, and display it all on one page. Everything's streamlined, commentable, hookable, and readily accessible. Google Profiles rock. But that is definitely an abandoned project. Lets mix that with a FriendFeed\-style activity stream. Done.
|
||||
|
||||
### **Step Three**: Sustainability, Audience, and Accessibility
|
||||
|
||||
How will we pay for it? How will we get people to contribute? How will be get people to use it? Answer: Twitter is getting old and it's getting old fast. It's time for something new. Lets blow them away and they will ALL hop on board. Allow for easy external\-account migration and account creation and we'll be golden.
|
||||
|
||||
### **Step Four**: Technical Planning and Engineering
|
||||
|
||||
This is all the stuff end users don't have to worry about. Performance. Design. System Administration. Database Engineering. The geek stuff. I mean come on guys, how awesome would it be to be able to make a commit to the Twitter live SVN Branch? Epically awesome.
|
||||
|
||||
### **Step Five**: Community \+ Collaboration
|
||||
|
||||
Once the community gets going, there will be no stopping it.
|
||||
|
||||
In conclusion, think about what we have to lose? Are you with me?
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# The Power of a Clean API
|
||||
|
||||
The folks over at [Mozilla Labs](http://mozillalabs.com/) never cease to amaze me with their unique ideas. They strive to transform the way users interact with the web forever.
|
||||
|
||||
[**Mozilla JetPack**](https://jetpack.mozillalabs.com/) is a bit different, though. This tool allows web developers to make incredibly powerful Firefox Extentions with the layout languages they already know and love.
|
||||
|
||||
My god, this is amazing.
|
||||
|
||||
[http://vimeo.com/moogaloop.swf?clip\_id\=4752576\&server\=vimeo.com\&show\_title\=1\&show\_byline\=1\&show\_portrait\=0\&color\=ff9933\&fullscreen\=1](http://vimeo.com/moogaloop.swf?clip_id=4752576&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=ff9933&fullscreen=1)
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# The Truth of Facebook's FriendFeed Aquisition
|
||||
|
||||
As I'm sure most of you know, [Facebook](http://facebook.com) decided today that it was going to buy [FriendFeed](http://friendfeed.com/kennethreitz).
|
||||
|
||||
My opinion might be a little biased... I just discovered FF [recently](http://kennethreitz.com/blog/friendfeed-is-awesome/), and I must say that I've been thoroughly impressed with the service so far. I've been spending an increasing amount of time on it every day, and It's most certainly a breath of fresh air from the clogged mob\-congestion of Twitter.
|
||||
|
||||
So apparently someone at Facebook realized this and decided to join forces.
|
||||
|
||||
So what is Facebook after? Absorbing the competition? I don't think so. Did you know FriendFeed is operated by only 11 people? and it rocks! That's definitely 11 people who are extremely talented and know exactly what they are doing. Something Facebook needs. They have been trying to put something together that works as well as FF for while now. The two merging might not be that bad, as long as FF marches on. My last favorite social site, [Pownce](http://pownce.com), was shut down when [Six Apart](http://sixapart.com) purchased them for the creation of [Motion](http://www.movabletype.com/motion/) – an utter failure.
|
||||
|
||||
**UPDATE**:
|
||||
|
||||
Luckily, the two companies announced today that FriendFeed will continue to remain a separate, fully functional entity from Facebook. Facebook will be integrating features of FriendFeed. Good news! Lets see if it happens.
|
||||
|
||||
[FriendFeed](http://technorati.com/tag/FriendFeed), [Facebook](http://technorati.com/tag/Facebook), [FaceFeed](http://technorati.com/tag/FaceFeed), [FriendBook](http://technorati.com/tag/FriendBook)
|
||||
@@ -0,0 +1,19 @@
|
||||
# The Ultimate RSS Feed Reader
|
||||
|
||||
What would the ultimate RSS Reader have? Hmmm....**Features:**
|
||||
|
||||
* Easy\-to\-manage import/export
|
||||
* Available anywhere and in a variety of formats
|
||||
* Easy access to both urls and inline\-viewing abilities
|
||||
* Customizable fonts
|
||||
* Takes up less than 200 MB of RAM (this rules out all Adobe Air Applications)
|
||||
* Auto feed sniffing from urls
|
||||
* The ability to play podcasts and other media that is thrown at it (unlike the PSP)
|
||||
* Syncing for offline viewing
|
||||
* Expendable
|
||||
|
||||
*Closest contender*: **Google Reader**! It offers all of this functionality and more. It makes my world a better place to live.
|
||||
|
||||
**[Google Reader](http://reader.google.com)**
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# The Universal Flaw in Commercial-Based OS's
|
||||
|
||||
Designers and Developers around the world, I present to you the flaw prevalent in all of today's commercial operating systems. This is not a security hole, nor is it a CPU\-capping bug. It's more of a world\-view. We're simply looking at things the wrong way.**What ever happened to the days when a computer was a *tool*, rather than an *experience*?**
|
||||
|
||||
Nowadays, computers are viewed by the public as a way of expressing oneself. Don't get me wrong, a computer can be all of that and more. Certainly, I find a level of solace and self\-identity in my software/hardware setup. But, a computer, more primarily, is so much more than that.
|
||||
|
||||
A computer, in today's modern consumerist mindset, is a box that runs applications that are made by other people. You will use the applications either because you think it will enhance your quality of life, make you more productive, cure you from boredom, or just be plain *neat*. No other options exist, just the software that big\-name companies produce.Sure, this method does sell well and, in the scheme of things, makes a company a large amount of money in a short amount of time (which is the point of a business, is it not?), but perhaps those big\-name companies should think a little more long\-term for the sake of us all. What does this method truly accomplish? It makes people buy lots of computers that have power way beyond practicality. This, in term, makes software development freeze. In case you haven't noticed, we can't do much with computers nowadays that we couldn't do 10 years ago, except perhaps check our bank accounts online, and that's hardly a major breakthrough rather than an new\-found application to keep everyone's interest. It self\-destructs in the end when you think about it.
|
||||
|
||||
And this, my friends, is the central heart of our problem. In our "ever\-changing" world of computer software, there is little to be found that is truly new or exciting. We have a bad habit of putting a new face on an old concept and calling it by a different name, when, in reality, we've run out of good ideas.
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Tim Ferriss and Insights on the Social Web
|
||||
|
||||
This is an absolute must watch for anyone interested in the social web and online promotion.
|
||||
|
||||
<http://www.ustream.tv/flash/video/2838490>
|
||||
@@ -0,0 +1,11 @@
|
||||
# uNetBootin: The Utility Belt for OS's
|
||||
|
||||
If you're in the mood to try a new operating system or two, I highly reccommend you try this little utility: uNetBootin. It is an image downloader that lets you easily select which Linux distro you'd like to install and it instantly starts fetching it from the cloud for you. Once the download is complete, it will allow you to put that bootable image on a jump\-drive for super easy and quick installs.
|
||||
|
||||
 And it runs in both Linux and Windows. I have yet to attempt to get it to work in OS X yet. I'm sure it's not too hard though :)
|
||||
|
||||
\[[uNetBootin](http://unetbootin.sourceforge.net)]
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# User Interface: Content vs. MetaContent
|
||||
|
||||
Trey of lopsa.org wrote a [fantastic article](http://lopsa.org/node/1566) on the the techie vs. non\-techie divide. If you are in the user\-interface market, I suggest you read this. It sheds some wonderful light on this great divide.\#\# In ShortOrdinary Users only see and understand content in a system. Developers and Techies implicitly understand the Metadata that surrounds that content at such an intimate level that they build systems that subconsciously further the divide.
|
||||
|
||||
Good Stuff.
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# Was College Worth It?
|
||||
|
||||
George Mason University (at which I'm currently a non\-studying student) is a fantastic environment for a student in their 20's. Never before have I felt so *enabled*. The campus allowed me to have a completely restriction\-free place to live with peers of my own age, and millions of resources an average American could only dream of having free access to:
|
||||
|
||||
* Olympic\-sized swimming pool minutes away
|
||||
* Every restaurant under the sun within walking distance
|
||||
* Free Kitchens and items promoting every brand under the sun
|
||||
* You don't go to stores – they come to you
|
||||
* Free food. Alot of it.
|
||||
* Functions and for everything under the sun.
|
||||
* Seminars from the Brightest Minds in Computer Science
|
||||
* Professors willing to go the extra mile for you
|
||||
* Dozens of cultures fused into one working student\-body
|
||||
* An incredibly Culturally\-Diverse Campus (taco bell and Islamic meditation lounge in the same building)
|
||||
|
||||
These are the things that I miss. I crave the "college experience" so much, but that makes me realize something: I didn't go to college for an education – I went there to get away. And I did so.
|
||||
|
||||
I failed. I had my heart broken (ish). I got into trouble. I reached out to the needy and regretted it. I worked for notable causes. I got a job. I strayed from truth. I got severely addicted to Caffeine. I was forgiven. I slept in. I researched. I learned to discern from someone who's worth my time and someone who's not. I learned to prioritize. Lateralus. I wasted people's time. I was used. I experimented. I fell asleep every morning during an all\-you\-can\-eat breakfast fit for a king. I relieved my childhood. I saw others lives fall apart. I learned to drive. I went way too fast. I forgot to prioritize. I found the most breathtaking music on earth. I made mistakes. I connected. I had a fantastic night. I played live shows. I was shot down. I failed miserably at Ju Jit Su. I was accused of Harrassment–I was totally innocent. I had the worst sleeping schedule on earth. I didn't try Salvia. I saw the best movies. I met the most amazing people. I shook Bill Clinton's hand. I got first\-hand internet experience I couldn't have dreamed of having before. I found my true passions. I learned without being taught. I saw some funny videos. I made some awesome friends. I lost some too. I joined a riot. I learned that I do way too many things at once. I lost a job. I learned to sell myself. I learned how to present myself. And, most importantly, *I learned what was truly important in life*.
|
||||
|
||||
So, here I stand, $10,000 dollars in debt with a GPA of 1\.14 and 8 credit hours – and I've never been happier. That was a $10K well spent.
|
||||
|
||||
|
||||
> And I have never been happier.
|
||||
|
||||
Regards,
|
||||
|
||||
Kenneth Reitz
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Wasted Talent
|
||||
|
||||
I'd say that 95% percent of the students that I met at George Mason University my Freshman year had *no idea* why they were even there. This is so sad.
|
||||
|
||||
For me, going to college was more about getting out of the house than anything else. And it worked. I did get out of the house. And I learned alot. I found my passion.
|
||||
|
||||
Other students worked their butts off trying to take as many credits as possible, and when asked what they want to do for a living they don't have the slightest idea. Why would you go to college if you don't even know what you want to major in? I would think that spending all that money would be in order to achieve a goal, but apparently not.
|
||||
|
||||
*They are just along for the ride.*
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# What's In a Design?
|
||||
|
||||
Disclaimer: I am **not** an Apple fanboy.Apple makes a fortune off of [speeple](http://www.squidoo.com/sheeple).
|
||||
|
||||
An Apple FanBoy blindly follows everything the cult leader, Steve Jobs has to say. They go out and purchase every iProduct that Apple realeases and does so with a smile on their face, not realizing that over the course of four years, they have [spent about $20,000](http://calacanis.com/2009/08/08/the-case-against-apple-in-five-parts/) on Apple products alone.
|
||||
|
||||
They leak photos of an upcoming product with incredibly low resolution so the masses can pick and decipher the image, spending countless hours just trying to imagine what that mysterious new button does. And people do it! They completely take advantage, but rightfully so. Who could blame them? They are, after all, a business. It would be foolish for them not to, because that FanBoy pays thousands of dollars to watch a 3 hour long commercial, and they love it! They love OSX for no apparent reason other than they are told to. They go out and buy every single new iPhone the day that it comes out, when there's clearly nothing wrong with the one they had. Year after year, they pour more and more money into their investment in nothing more than a brand that they thing will change who they are as a person. They want to be Steve Jobs. They write endless posts about how much money they spend on Apple products every month, and just can't wait to get their hands on the next one.
|
||||
|
||||
This is not that post and I am not that guy.
|
||||
|
||||
I do, however, believe that my recently purchased [13" Unibody MacBook Pro is the greatest laptop ever manufactured](http://kennethreitz.com/blog/i-finally-got-a-macbook/) on Earth to date. But not because Apple made it. That's irrelevant.
|
||||
|
||||
Now please, don't get me wrong: I love Apple. And that's because, they have a **superior** operating system and they put an extraordinary amount of design and thought into every nook and cranny of every system that they release.
|
||||
|
||||
This system is designed well. *Incredibly* well.
|
||||
|
||||
On a side note, I firmly believe that OSX is the greatest desktop operating system of all time, and I see no chance of this changing any time soon. From many different standpoints (End User, Prosumer, Developer, Newbie) this holds true.
|
||||
|
||||
I am a fan and follower of one thing and one thing only: Design.
|
||||
|
||||
And, for now, Apple hands\-down has the greatest sense of design, both software and hardware in my opinion. But if something else comes along made by someone else, I'll be sure to give that a try with an open mind. :)
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# What's in a Language?
|
||||
|
||||
What do developers want in a language?
|
||||
|
||||
* Lots of Available Resources / Documentation
|
||||
* Large Standard Library
|
||||
* Portability
|
||||
* Speed of Development
|
||||
* Easy to Read
|
||||
* A Community of Developers
|
||||
|
||||
Yes, Easy to read. You'd really be surprised how much this helps a developer. Well over half the time a C\+\+ Developer spends writing code is actually time spent deciphering what he's already written. Certainly the amount of time spent doing this decreases over time, but even if you've been reading C\+\+ for 20\+ years, there still is and always will be a lot of junk in the middle that subconsciously slows you down.
|
||||
|
||||
**Solution?** Whitespace.
|
||||
|
||||
Whitespace is fantastic. It's standard practice to use indenting all over the place. Why not use that as block delimiters? We do it anyway. Lets get rid of Curly Braces.
|
||||
|
||||
Here is a clip of C\#. No shortcuts taken:
|
||||
|
||||
|
||||
```
|
||||
String output = new String();output = "Hello, World!";try {System.Console.WriteLine(output);}catch (Exception e) {raise;}
|
||||
```
|
||||
Here is the same clip of code in Python:
|
||||
|
||||
|
||||
```
|
||||
output = "Hello, world!"try:print(output)except:raise
|
||||
```
|
||||
Nicer, eh?
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
# Windows Mobile and iPhone OS
|
||||
|
||||
I've owned about 5 WIndows Mobile devices, 3 Palm Devices, and 1 iPhone.
|
||||
|
||||
What we all need:
|
||||
|
||||
* Simplicity
|
||||
* Power
|
||||
* Reliability
|
||||
* Speed
|
||||
* Integration
|
||||
|
||||
**Palm OS** (Pre\-Pre haha):
|
||||
|
||||
* Simple. Very Simple.
|
||||
* Does what it needs to do and doesn't falter.
|
||||
* Not much in terms of applications.
|
||||
* Most certainly not designed for a mobile professional.
|
||||
* It's a glorified rolodex.
|
||||
|
||||
**Windows Mobile** (5, 6, 6\.1\):
|
||||
|
||||
* Attempts to satisfy someone who needs to read spreadsheets on the go.
|
||||
* Very slow and unstable. Not good for phone use. At all.
|
||||
* Integration is sub\-par.
|
||||
* Lots of work\-arounds for lots of things, nothing is simple.
|
||||
* Fonts are ugly.
|
||||
* Interface is clunky.
|
||||
|
||||
**iPhone OS**:
|
||||
|
||||
* Smooth, and very nice looking.
|
||||
* Font rendering is exceptional.
|
||||
* Web browsing is a dream.
|
||||
* Did I mention how good it looks?
|
||||
* Fantastic applications, integration, and standards.
|
||||
* Apps need approval (good and bad).
|
||||
* Very fast. Very slick. Problem free.
|
||||
|
||||
**Verdict**:
|
||||
|
||||
iPhone OS simply cannot be beat. It's perfect. I haven't used Android, but it's more of a platform than an intended out\-of\-the\-box Mobile OS. You aren't intended to use the built\-in Window Manager if you don't want to. Windows Mobile: pay attention.
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# Your Degree Is Worthless; Collaborate.
|
||||
|
||||
I’ve always been a self\-motivated learner as well as a free thinker. I was never one to get involved in cliques or social ladders. Despite the fact that I was raised being constantly told that grades were the single most important thing in my life, I could never accept that. So I didn’t. I just did enough to get by. I didn’t pay attention much in class. I had no reason to. Class was beyond boring. So I’d spend all hours of the night hacking away on my computer, soaking in all I could, and most of the school day sleeping during class when I could get away with it. When there was a test, I’d try my hardest to stay awake, answer the questions as best I could – typically earning a low C in my Honors/AP Classes, and a low B in my “Ordinary” Classes. I found a good balance. Why would I study for 30 hours a week to get better grades when I could get by with 0 hours?
|
||||
|
||||
So, I graduated. And I did the next logical thing: I went to college. Ahh, college. The most important decision you could ever make in your life. The time to “make it or break it”. Where every young man goes to be become a man. So I went. While high\-school never engaged me, I assumed that courses about career\-relevant subjects would interest me in a university setting. I was wrong. I was very, very wrong.
|
||||
|
||||
## College Life
|
||||
|
||||
I studied Plato, Homer, and Socrates, Turing Machines, and Single\-State\-Automata. I analyzed the progression of American Popular Music from the 1920s to today. I learned how to draw, play the marimba properly, and splatter paint on walls. I attempted jujitsu. Wonderful life experience. But what does any of this have to do with setting the foundation of a career? Nothing. At all. Of course, the higher up you go, the more relevant the courses get to your chosen major. But I didn’t want to wait. Especially when I was paying $20,000 a year for this. It was mostly useless information. The average college education in America costs 9 cents a minute. Every minute. Every day. A complete waste. And I was working 35 hours a week as a graphics design intern, working at odd hours of the night, attempting to pay for all of this. It was impossible, and I was unengaged.
|
||||
|
||||
## The Plunge
|
||||
|
||||
So, after totally losing interest in class or anything related to it, I gave up and dropped out. I didn’t want to get further in debt. So I moved back home, defeated, and tried my hardest to get my life back in order. I got my high\-school job back at McDonald’s. I worked harder than I ever have in my life. I didn’t have anything else better to do, so I worked as much as I could all the time. I worked one 65 hour week \- but that got old really fast. I was again, unengaged.
|
||||
|
||||
Then, one day, I quit McDonanld’s without notice. Not best practice of course, but I didn’t want to spend any more time there. It’s strange what a terrible work environment it is. After a few short weeks, you begin to think there isn’t anything outside those walls. It was clear that it wasn’t getting me anywhere, so I set out with my laptop to try to find something better.
|
||||
|
||||
## How It All Turned Around
|
||||
|
||||
I spent alot of time on some freelance websites, where you bid for odd jobs, usually settling for some ridiculously low amount of money here and there. That didn’t last long. I remembered coming across a guy on Twitter from my hometown, Winchester, Virginia, who was quite into the internet and technology. That’s pretty rare in these parts, so I looked him up. What I found was a local cowork center. I went and checked out the cowork, and what I found blew my mind.
|
||||
|
||||
In this little building off the historic old\-town walking mall was a room. Inside: the COO of a major internet company, tech consultants, graphic designers, writers, author, bloggers, freelancers, and so much more. I met everyone in and around town. I sat in on think tank lunches. People cared about what I had to say. We collaborated.
|
||||
|
||||
## Collaboration is Everything.
|
||||
|
||||
For the first time in my life, I was meeting interesting people with awesome experience, willing to share and collaborate what they have learned with me. And I did the same. I soaked in endless amounts of information. One simple room full of a few people turned on some switch in me that the education system had failed to do year after year after year: teach me something.
|
||||
|
||||
I was finally engaged. *Fully* engaged.
|
||||
|
||||
As soon as I realized that, my entire life changed. I started thriving on my own, getting dozens of clients. Suddenly, I had a life with significantly less stress and worry. No tuition fees! I realized how valuable my skills were and how I didn’t have to be part of the institution if I didn’t want to be. I rose above. I am now a Web Applications Developer at a respectful technology firm. No degree. No debt. Only an open mind. I gain more knowledge and experience in a single workday than I did during my entire college career. I’m in the real world. And I’m loving every minute of it.
|
||||
|
||||
## In Conclusion
|
||||
|
||||
Looking back, I’m comfortable saying that dropping out of college has been the best decision I’ve ever made. If I would have gone through the entire education program, what would I have to show for it? $150,000 in debt, a piece of paper, and four years less of your life. No real experience. No connections. Just a piece of paper. And nothing more.
|
||||
|
||||
Please bear these things in mind before you decide to spend $150,000 on a bachelor’s degree in a field you’re not so certain about. Personally, I’d rather spend that money on something that will actually benefit me: like a house.
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Zsh Configuration
|
||||
|
||||
\#\#In case you don't know, Zsh is the greatest command prompt of all time—but only after you configure it.Here's my configuration. Updated regularly.
|
||||
|
||||
[http://gist.github.com/258656\.js](http://gist.github.com/258656.js)
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Apache GZip Deflate Compression
|
||||
|
||||
Here's a quick Apache \`.htaccess\` file for adding server\-side data compression.[http://gist.github.com/347371\.js](http://gist.github.com/347371.js)
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# Baconfile: Awesome Public S3 Bucket Frontend
|
||||
|
||||
Amazon S3 is a fantastic data storage platform — I use it for everything.
|
||||
|
||||
It's perfect for sharing data with friends. The only disadvantage is the interface: there is none. You can manage your buckets files with REST requests, along with a number of desktop clients. That's fine, but what about your visitors? The only way to show them what you have to offer is to build a frontend system that ties into the API.
|
||||
|
||||
|
||||
### The Solution
|
||||
|
||||
**Baconfile**: Simple S3 Frontend. You'll never be happier.
|
||||
|
||||
Check out me out at \[Baconfile](http://baconfile.com/KennethReitz/).
|
||||
@@ -0,0 +1,11 @@
|
||||
# Basic Authentication protected files (htpasswd)
|
||||
|
||||
\#\# Here's a snippet for password protecting a directory served by ApacheTo set this up, just add \`.htaccess\` and \`.htpasswd\` to the desired directory being served by Apache .
|
||||
|
||||
Make sure to \[generate your own .htpasswd file](http://www.htaccesstools.com/htpasswd\-generator/).
|
||||
|
||||
[http://gist.github.com/347430\.js](http://gist.github.com/347430.js)
|
||||
|
||||
For more \`htaccess\` snippets, checkout PerishablePress' [Stupid .htaccess Tricks](http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/).
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Crash IE6 WordPress Plugin
|
||||
|
||||
\#\# I decided to have a little fun today during lunch, so I wrote a WordPress \+ jQuery plugin for Crashing IE 6\.[http://gist.github.com/350532\.js](http://gist.github.com/350532.js)
|
||||
|
||||
\#\#\# Once activated, IE 6 will instantly crash on page load. Enjoy :)
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Dev Tool: Ghost #manage /etc/hosts
|
||||
|
||||
\#\# The Ruby community has really been blowing me away lately with their array of indispensable web development tools.
|
||||
|
||||
\*\*Ghost\*\* is no exception to this rule. It is a simple command line application for adding and removing 127\.0\.0\.1 entries in your \`/etc/hosts\` file. I can't believe I hadn't thought of this sooner.
|
||||
|
||||
\#\#\#Example Usage
|
||||
|
||||
$ ghost add mydevsite.local\[Adding] mydevsite.local \-\> 127\.0\.0\.1
|
||||
|
||||
$ ghost add staging\-server.local 67\.207\.136\.164\[Adding] staging\-server.local \-\> 67\.207\.136\.164
|
||||
|
||||
$ ghost listListing 2 host(s):mydevsite.local \-\> 127\.0\.0\.1staging\-server.local \-\> 67\.207\.136\.164
|
||||
|
||||
$ ghost delete mydevsite.local\[Deleting] mydevsite.local
|
||||
|
||||
\#\#\# Installation
|
||||
|
||||
|
||||
```
|
||||
sudo gem install ghost
|
||||
```
|
||||
|
||||
|
||||
---
|
||||
|
||||
Yes, it's really that easy. Make sure to checkout the \[GitHub Repo](http://github.com/bjeanes/ghost) to contribute!
|
||||
@@ -0,0 +1,5 @@
|
||||
# Getting Started with Python
|
||||
|
||||
\#\# For the past couple of weeks, I've been working on a Python tutorial series for beginners.They just went live. \[Give them a watch](http://www.vtc.com/products/QuickStart!\-Python\-Tutorials.htm) and let me know what you think!
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# GistAPI.py v0.1 Released
|
||||
|
||||
Today I released GistAPI.py v0\.1\.2\. It features a highly\-optimized Gist object model and API wrapper which allows you to consume Gists in your next Python application.
|
||||
|
||||
GitHub just rolled out a miniature pre\-release of the \[Gist API](http://develop.github.com/p/gist.html) last month, so API functionality is pretty limited at the moment. More features will be added as soon as the API is updated.
|
||||
|
||||
\#\# Usage
|
||||
|
||||
from gistapi import \*
|
||||
|
||||
gist \= Gist('d4507e882a07ac6f9f92')
|
||||
|
||||
gist.description \# 'Example Gist for gist.py'gist.created\_at \# '2010/05/16 10:51:15 \-0700'gist.public \# Falsegist.filenames \# \['exampleEmptyFile', 'exampleFile']gist.files\['exampleFile'] \# 'Example file content.'
|
||||
|
||||
\[Source on GitHub](http://github.com/kennethreitz/gistapi.py/)
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# GitHub Syncer in Python
|
||||
|
||||
Today I rewrote a little utility I've been using for a while to keep all of my GitHub repos up to date and organized. It updates / clones all private, public, and watched repositories from your account. It also detects if your repo is a mirror or fork, and files it accordingly.My watched list is huge, but I like to have a local copy of my favorite libraries. You never know if the owner will take it down, or worse, move it to another SCM! ;\-)
|
||||
|
||||
The script depends on the \*\*GitHub2\*\* module. If you don't have it, you can install it easily.
|
||||
|
||||
$ pip install github2
|
||||
|
||||
I recommend running this from \`\~/repos/\`.
|
||||
|
||||
[http://gist.github.com/619473\.js?file\=sync.py](http://gist.github.com/619473.js?file=sync.py)
|
||||
|
||||
|
||||
```
|
||||
#!/usr/bin/env python# -*- coding: utf-8 -*-"""Kenneth Reitz's GitHub SyncerThis script uses the GitHub API to get a list of all forked, mirrored, public, andprivate repos in your GitHub account. If the repo already exists locally, it willupdate it via git-pull. Otherwise, it will properly clone the repo.It will organize your repos into the following directory structure:+ repos├── forks (public fork repos)├── mirrors (public mirror repos)├── private (private repos)├── public (public repos)├── watched (this script)└── sync.py (this script)Requires Ask Solem's github2 (http://pypi.python.org/pypi/github2).Inspired by Gisty (http://github.com/swdyh/gisty)."""import osfrom commands import getoutput as cmdfrom github2.client import Github# GitHub configurationsGITHUB_USER = cmd('git config github.user')GITHUB_TOKEN = cmd('git config github.token')# API Objectgithub = Github(username=GITHUB_USER, api_token=GITHUB_TOKEN)# repo slotsrepos = {}repos['watched'] = [r for r in github.repos.watching(GITHUB_USER)]repos['private'] = []repos['mirrors'] = []repos['public'] = []repos['forks'] = []# Collect GitHub repos via APIfor repo in github.repos.list():if repo.private:repos['private'].append(repo)elif repo.fork:repos['forks'].append(repo)elif 'mirror' in repo.description.lower():# mirrors owned by self if mirror in description...repos['mirrors'].append(repo)else:repos['public'].append(repo)for org, repos in repos.iteritems():for repo in repos:# create org directory (safely)try:os.makedirs(org)except OSError:pass# enter org diros.chdir(org)# I own the repoprivate = True if org in ('private', 'fork', 'mirror') else False# just `git pull` if it's already thereif os.path.exists(repo.name):os.chdir(repo.name)print('Updating repo: %s' % (repo.name))os.system('git pull')os.chdir('..')else:if private:print('Cloning private repo: %s' % (repo.name))os.system('git clone git@github.com:%s/%s.git' % (repo.owner, repo.name))else:print('Cloning repo: %s' % (repo.name))os.system('git clone git://github.com/%s/%s.git' % (repo.owner, repo.name))# return to baseos.chdir('..')print
|
||||
```
|
||||
\[Source on GitHub](http://gist.github.com/619473\)
|
||||
|
||||
Enjoy!
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Google AdWords for TV. Yes, TV.
|
||||
|
||||
Today, Google unveiled their latest technology: \[AdWords for TV](http://www.google.com/adwords/tvads/index\-b.html) and \[AdSense for TV](https://www.google.com/adsense/www/en\_US/tv/).This totally blows my mind. They are about to totally revolutionize the television industry.
|
||||
|
||||
You can manage TV ads just like you manage AdWords ads for the web. You enter the amount you're willing to pay per impression, and your daily budget, and Google does the rest.
|
||||
|
||||
Google is the future of all advertizing. NBC, be afraid.
|
||||
|
||||
From Google:
|
||||
|
||||
The results were extraordinary. Web traffic to ooVoo.com increased by 500% and ooVoo\-related search queries rose by more than 200% over pre\-campaign levels." *\- Lisa Abourezk, VP of marketing, ooVoo*
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Google Docs Now Supports All Filetypes
|
||||
|
||||
For an extra $5 a month, \[Evernote](http://evernote.com) lets you upload a file of any extension to their servers. This is a fantastic feature for developers who like to keep their random psd and 3ds files in sync with the cloud.Looks like Google finally took the hint. Within the next few weeks, they will be rolling out (in the typical staggered unveiling) the ability to upload up to 1 GB of files to Google Docs.
|
||||
|
||||
Additional storage space will be $0\.25 / GB / Year. That's one tenth the price of Amazon S3!
|
||||
|
||||
\[ \[Google Press Release](http://googledocs.blogspot.com/2010/01/upload\-and\-store\-your\-files\-in\-cloud.html) ]
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# iPad Apps Worth Lusting For
|
||||
|
||||
The distaste hackers and developers have towards the iPad was initially understandable. Now that it's out, I think everyone should hold one in their hand before they make any outlandish statements against it. Eric Sink sums it up pretty perfectly.\> Computers, by and large, are still designed for geeks. This is why we all buy T\-shirts that say “No, I will not fix your computer”. The genius of the iPad is that it cannot get things like viruses. It is a closed platform. You can’t put apps on it. You can’t write and distribute software for it without Apple’s permission. This is why geeks hate it and normal people will love it.
|
||||
|
||||
|
||||
— Eric Sink
|
||||
|
||||
I have yet to succumb to the temptation to buy an iPad. I haven't been able to justify the steep $499 price tag. I might end up forcing myself to get one. If I do, here's why:
|
||||
|
||||
\#\# \[Things](http://culturedcode.com/things/ipad/) by \[Cultured Code](http://culturedcode.com/)
|
||||
|
||||
[http://culturedcode.cachefly.net/things/Things\-iPad\-Teaser\-025/Things\-iPad\-Teaser\-025\.mov](http://culturedcode.cachefly.net/things/Things-iPad-Teaser-025/Things-iPad-Teaser-025.mov)
|
||||
|
||||
\#\# \[Instapaper](http://blog.instapaper.com/post/469281634\)
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# It's All a Matter of Perspective
|
||||
|
||||
An incredible reminder to look at the other side of things.
|
||||
|
||||

|
||||
|
||||
The squares marked **A** and **B** are the same shade of grey.[(proof)](http://web.mit.edu/persci/people/adelson/images/checkershadow/checkershadow_double_med.jpg)
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# My Standard CSS Attributes
|
||||
|
||||
This is my minimal set of CSS Attributes that I use on nearly every project I work on.If you have any improvement suggestions, feel free to share.
|
||||
|
||||
[http://gist.github.com/324443\.js](http://gist.github.com/324443.js)
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# New Years Resolutions for Startups
|
||||
|
||||
Here's a small list of 2009 *New Year's Resolutions* for your startup.
|
||||
|
||||
### 1. Simplify
|
||||
|
||||
Anyone can make something complex. It takes thoughtful planning, consideration, and discipline to make something simple. Simple \= elegant. The same applies to your business.
|
||||
|
||||
### 2. Get some Humility
|
||||
|
||||
Don't assume you know what your audience wants. [Find out first](http://www.fourhourworkweek.com/blog/2009/12/13/how-to-create-a-global-phenomenon-for-less-than\10000/).
|
||||
|
||||
### 3. Release a Real Product
|
||||
|
||||
10,000 great ideas are worthless if you never act upon them. Pick one. Pick three and mix. Release.
|
||||
|
||||
### 4. The Opposite is Also True
|
||||
|
||||
Your product can be enormously successful for a single feature. Someone else's product will be even more successful for excluding that same feature.
|
||||
|
||||
### 5. Loose the Bulk
|
||||
|
||||
Startups \[don't need much](http://cdixon.tumblr.com/post/311546950/things\-startups\-do\-and\-dont\-need). The more you spend, the less you earn. Keep things small. Keep things simple. You'll thrive.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Notes on git-svn
|
||||
|
||||
I'm forced to use SVN at the office. It's not THAT bad. OK, so maybe it's absolutely horrible. But it's more than understandable on their end.Those darn \`.svn\` folders drove me crazy. So, I use git\-svn. Git\-svn allows me to harness all the power of git with a subversion server.
|
||||
|
||||
Perfect. (Or at least it's the best of a bad situation.)
|
||||
|
||||
### Setup
|
||||
|
||||
\`git svn clone repo://url\`
|
||||
|
||||
### Commands
|
||||
|
||||
\`git svn dcommit \-\-\` commit your changes\`git svn rebase \-\-\` update your working copy\`git stash \-\-\` stash your changes\`git stash apply \-\-\` take back your stash\`git stash clear \-\-\` clear the stash
|
||||
|
||||
\#### See Also:
|
||||
|
||||
\[svn2git](http://github.com/jcoglan/svn2git)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user