I don't think signature campaigns will do any good since not even pressure from the US and Turkey has slowed down the bloodshed so do we really think they will care about a bunch of virtual signatures collected online?
There's a few more viable options that should be considered:
1) Leverage someone who has influence with the Syrian government to take up the cause. Given Bassel has been an open source contributor, maybe look at which tech companies are still contracted by the Syrian government and try to get them to lend a voice of support. Make sure to play up the positive PR that releasing Bassel will have on improving Syria's image.
2) Stop collecting signatures and start collecting money to work the back channels. Let's be honest here, corruption is rife (high corruption index on Transparency International study) and the situation pretty chaotic, if you really want to free Bassel, consider a pragmatic approach.
In fact, it would have been better if you had linked to https://creativecommons.org/weblog/entry/33119 which vouches for http://freebassel.org/
Creative Commons supports efforts to obtain the release of Bassel Safadi, a valuable contributor to and leader in the technology community. Bassel's expertise and focus across all aspects of his work has been in support of the development of publicly available, free, open source computer software code and technology. He pursues this not only through his valuable volunteer efforts in support of Creative Commons, but in all of his work in the technology field. Through his efforts, the quality and availability of freely available and open technology is improved and technology is advanced.
During the night of 30.06.2012 to 01.07.2012 our internalmonitoring systems registered an increase in the level ofIT power usage by approximately one megawatt.
The reason for this huge surge is the additional switchedleap second which can lead to permanent CPU load on Linuxservers.
According to heise.de, various Linux distributions areaffected by this. Further information can be found at:http://www.h-online.com/open/news/item/Leap-second-Linux-can...
In order to reduce CPU load to a normal level again, arestart of the whole system is necessary in many cases.First, a soft reboot via the command line should beattempted. Failing that, you have the option of performinga hardware reset via the Robot administration interface.For this, select menu item "Server" and the "Reset" tabfor the respective server in the administration interface.
Please do not hesitate to contact us, should you have anyqueries.
Hetzner Online AGStuttgarter Str. 191710 Gunzenhausen / Germanyinfo@hetzner.dehttp://www.hetzner.com
During the night of 30.06.2012 to 01.07.2012 our internal monitoring systems registered an increase in the level ofIT power usage by approximately one megawatt.
The reason for this huge surge is the additional switched leap second which can lead to permanent CPU load on Linux servers.
According to heise.de, various Linux distributions are affected by this. Further information can be found at:http://www.h-online.com/open/news/item/Leap-second-Linux-can...
Please do not hesitate to contact us, should you have any queries.
1) You have and idea. You make as much progress as you can before trying to raise.
2) Ideally, you network with some angel investors / micro VC's before you start talking about your round.
3) You incorporate your company. You will issue an arbitrary number of shares for the co-founders (typically 10M+) and you allocate some shares as an option pool (typically 10-20%). Option pool will be used to give shares to employees, advisors, consultants and board members.
4) You decide that you have made enough progress to raise a round (doing this too early will be bad for you)
5) You talk to a lot of angel investors and early stage VC funds. Angel investor is somebody who invests his/her own money, VC is a person who invests other people's money. That's the only real difference.
6) If somebody is interested, you start talking about the terms. Now you really have to learn the jargon.
Let's assume you will do a traditional priced round. You will negotiate a pre-money valuation (typically $2-10M for first time entrepreneurs). Let's say an investor proposes you $1M with a $4M pre money valuation (means your post-money valuation is $5M) and you had initially issued 10M total shares. Each of your shares will be worth $4M/10M = $0.25. Your company will issue $1M/0.24 = 4M new shares for your investors. So you don't actually sell shares, you just issue new shares which will reduce your ownership percentage of the company(by 20% in this case). This deal could be done with a single investor (usually a VC) or a group of investors who are each putting smaller chunks.
There's another format called "Convertible Note/Debt". It has become popular in silicon valley. Instead of negotiating a pre-money valuation, you negotiate for a discount rate (let's say 25%) and an annual interest rate (let's say 8%). In this case you don't immediately issue shares to investors. Instead you promise to give them shares when you do your next priced round (Series A) with the valuation that those investors pay / (1+discount rate) / (1+interest rate). For example if you get a pre-money valuation of $20M a year after the convertible note, your angel investors will get shares worth $1M(1+0.25)(1+0.08) = $1.35M from the $20M pre-money valuation. That will be $1.35 / ($20M / 10M) = 675K shares.
The most common format these days is a convertible note with a cap on the valuation. Typically the cap is negotiated just like a valuation. If you get a valuation higher than the cap in your Series A, angel investors will get shares from the cap you agreed on instead of the full price.
7) Typically, the investors give you a term sheet. When the negotiations are over, they go through a due diligence period. They will ask for some docs to check there was any BS in your pitch. In a seed round, this is usually very lightweight.
1) You have an idea
2) You do some work to prove the viability of this idea, generally in some proportion to the complexity of implementing the idea (eg: if the idea is a webapp, you write some code, maybe get a beta site going. If the idea is a new fab process to build a 1 micron 1000-core supercomputer, then you tend to do more research than actual real-world implementation)
3) You convince someone that your idea is worth $X(XXX(XXX(XXX)))
4) You form a legal corporation and issue shares of stock (typically 100,000,000 or so).
5) You now have a pool of shares (100,000,000) and an agreed upon valuation for the company (let's say that valuation is $100,000,000 to make the math easy). Each share is then worth $1.
6) You sell some number of those shares to one or more investors. Now you (you being the corporation) have money to implement your idea and bring it to fruition.
Again, grand simplification, but that is the general outline.
These two may help see what's happening http://hn4d.com/, http://hnrankings.info/
For the time being, I'll skip the pleasure of investigating.
Edit: I am also very often surprised that something showing in /newest feed (even 1st, 2nd page of /newest), shows on front page, too.
I have no opinion one way or the other. Just curious why you think the an algo change is the explanation?
- Great usage flow by having both keyboard shortcuts displayed. I would label each in a smaller font (i.e. "Take Screenshot By..." and "Paste Here With...") for less savvy users.
- Could you insert a preview after it finishes uploading? A quick visual check would rock.
- I would love you if you could picked a colorful name. The trouble with "clean" sterile names is the fact it is really difficult to remember compounded with the url hack. Animals work well.
- My favorite tool: http://www.domainhole.com/brainstormer/ Try using the word "snap" / "paste"
- Change the tagline to say something about pasting it directly. Your clear differentiating feature is the fact that uploading doesn't take a dialog. Something like "Instantly paste your screenshot"
- There's that momentary ecstasy going "Wow, this is amazing." Have Facebook like / Twitter share buttons available the moment people see their pictures appear. This is when the magician just completed the trick and people want to applause. That's your window to spread the word.
- Add a link to your blog! I had fun reading it. Much more interesting than just a twitter handle.
- Polish this site up some and spread the word. It's a very simple app but has incredible utility. It may take a day or two to polish but it'll provide a multiplier to the rate of spread. Good side projects can get legs of its own and help you later down the road.
P.S. Have you guys decided on a project yet?
I find the scroll overflow on the screenshot display to be clunky and uncomfortable, though. I think I'd prefer a shrink-to-fit/click-to-expand situation.
Also, I tried pasting a ~1mb JPG photo, and the spinner has been going for a few minutes now. Might wanna throw an error or something in weird edge cases.
There's nothing wrong with details: all the little hacks that work for us that we can share and copy. They're fun and cool and can really help.
But make no mistake about it: details are not issues.
Examples of details:
- when I wake up - what I eat - how I exercise - my set-up - my preferences - my life hacks - how my team is organized - how we communicate - what I read - where we go - tips & tricks
- the value I produced for my paying customers
9:01 answer the Skype call, offer a quick "I'm here" before switching to mute so they won't hear the sounds of coffee brewing, much less the groaning.
9:12 carry around the laptop while starting laundry, then into the bathroom and out again. Nobody suspects a thing.
9:35 coffee's starting to work. A good thing too, have to say my piece. Short and sweet but not too gruff.
9:37 hangover's coming back for round 2. Get back in bed with Skype on low.
10:08 shower time. Really gotta buy drano soon. And toothpaste.
10:35 third cup o' joe. Start working.
# hours after post: 7 # comments in this thread only expressing how they thought the "double stealth" bit was funny: 10 # American Psycho references: 3 # top level comments providing absolutely no information or any point at all: 10 # of reddit-style "one-up" threads 5
: perhaps including this one?
: is there a name for this yet?
0550 Alarm (https://play.google.com/store/apps/details?id=com.mobitobi.a... -- I LOVE this app!!) goes off and I sneak out of the bedroom trying not to wake the 1 year old.
0551 Instant coffee in microwave & bio-needs-management. pull on shorts from previous day and clean t-shirt.
0600 prepare lunches & snacks for wife & kids
[0620-0630 optional time to catch up on email if I was adequately well-prepared in advance for food prep the night before]
0630 wake 1yo & wife. change diaper, dress, feed, and sunscreen 1yo.
0645 wake 3yo, usually with help from 1yo.
0705 wife leaves for work and i leave to drop off the kids at daycare/preschool.
0745-1630 lots of meetings, some real work, possibly some exercise, dinner prep, laundry, and possibly a couple of errands.
1630 pick up kids and proceed with the evening family craziness until putting them to bed around 2030.
2030-2230 fluctuates between doing the real work I couldn't get done during the work day and spending time with my wife. Usually more of the latter than the former, something I am extremely thankful for.
The point isn't the schedule. The point is that finding a work-life balance that accommodates productivity and supports happiness in both areas is a very personal thing, and as jgc's sarcasm shows it's ultimately about what one can accomplish and how one feels while working toward those accomplishments, not the self-congratulatory circle-jerk minutiae so many people focus on.
But seriously, I think "double stealth mode" deserves to officially enter startup lexicon.
To quote Louis CK's interview from Tuesday... it's WONDERFUL!
Likely because focusing on that is a lot easier than focusing on reality: It's hard work, takes extreme dedication and sacrifice. Much easier to pretend that certain types of yoga exercise are key factors....
I still think it's weird Facebook would do this.
On a broader basis there are a couple of things which I think act as an indicator.
1. Is you time spent on Stackoverflow and thumbing through books inversely related to the time you have spent on a topic. When we start out on a new language/library we spend a lot of time in the docs and checking things, over time you should start to notice that you begin spending less time in the docs and more time coding. Eventually you will notice that you can start to answer some questions on Stackoverflow on the topic. At this point I would say you are good at the chosen topic.
2. You stop looking for snippets of open source code or plugins and find yourself naturally leaning towards doing it yourself. This isn't always the correct approach for a given solution but it means you are familiar enough to "get stuff working" from first principles. This probably isn't expert level but it is certainly at the very familiar level which is good enough in most cases.
3. You begin to dig deeper into how the chosen topic works and dissect it to the point where you notice flaws and see where you can make improvements. I think this is the expert level and is very time consuming to get to and may mean you have reached this level at the detriment to your broader knowledge - which is fine if that is what you intended.
I've used coding analogies for this but I think it is basically the same in every field.
I like Valve's ethos of finding T-shaped people, nice and broad across a lot of topics and then they go deep on one.
Just my 2 cents
Second is to seek out experts. This is much easier now thanks to sites like HN, StackExchange, et al. They can help you gauge your own knowledge level.
AWS is an amazing tool and you have a few options here, but the downside is the more options you use to be highly-available (HA), the more expensive AWS gets (as you would imagine).
Your first option is to be HA across a SINGLE region; to do this you make use of the elastic load balancers (ELB) + auto-scaling. You setup auto-scale rules to launch more instances in different availability zones (AZ) either in response to demand or in response to failures (e.g. "always keep at least 3 instances running").
You compliment that with an ELB to load-balance incoming requests automatically across those instances in the different AZs. This is all fairly straight forward through the web console (except auto-scaling is still done via CLI for some reason)
If you want to be HA ACROSS regions you can't just use ELBs anymore, you have some added complexity and an additional AWS feature you will likely want to use: Route 53.
Route 53 is Amazon's DNS service which offers a lot of slick DNS-features like removing dead points from DNS rotation, latency-based routings, etc. There are also something like 29 deployments of Route53 (and CloudFront) around the globe so you'll hopefully never have Route53 become a point of failure for you even disaster strikes.
In this scenario you would setup the HA configuration for a single-region as mentioned above, but you would do it in multiple regions. Put another way, 2+ servers in multiple AZs in each AWS region. Then a Route53 DNS configuration setup to point to each ELB in each region representing those individual pockets of servers.
Ontop of that you would use Route53 to manage all routing of client requests into your entire domain; you can leverage the new "latency-based routing" (effectively why everyone was asking for GeoDNS for years, but even better) and monitor capability to ensure you aren't routing anyone to a dead region.
Here is what I would recommend given the size of your budget and need to stay up in the AWS cloud, in-order of expense:
1. Launch a single instance in a region with acceptable latency that has never had an outage before (e.g. Oregon has never completely gone down but Virginia has -- yes yes I know VA is older, but you understand my point). This solution will be cheaper than multiple instances in any region.
2. Launch multiple instances using the web console, in multiple AZs in US-EAST (cheapest option for multi-instances) and front them with an ELB. You skip any auto-scaling complexity here but you need to keep an eye on your servers. I think ELB fixed the issue where it would effectively route traffic into the void if all the instances in an AZ went down.
OPTIONAL: If you didn't mind spending a few $ more, you could do this strategy in the region that has never gone down for added piece of mind.
3. Launch single instances in multiple REGIONS and front them with Route53. This isn't really a recommended setup as entire regions will disappear if you lose a single instance, BUT I said I would list possibilities in order of price, so there you go. You could mitigate this by setting up auto-scaling policies to replace any dead instances quickly in the off chance you wanted to do exactly this but not babysit the web console all day.
4. Launch multiple instances in each region, across multiple AZs fronted by ELBs and then the entire collection fronted by Route53.
NOTE: The real cost comes from the additional instances and not from Route53 or the ELB; so if you can use smaller instances to help keep costs down (or reserved instances also) that might allow you to provide a larger HA setup.
What about my data?
Yes, yes... this is an issue that someone already touched on (data locality below).
You will have to decide on a single region to hold your data; in this case I would recommend using DB services that aren't based on EC2 and have never experienced outages (or rarely) -- this includes S3, SimpleDB and/or DynamoDB. AWS's MySQL offering (RDS) are just custom EC2 instances with MySQL running on them, so any time EC2 goes down, RDS goes down.
The other DB offerings are all custom and except for SimpleDB a long time ago, have never experienced outages that I am aware of.
Making this choice is all about latency and which DB store you are comfortable with (obviously don't choose SimpleDB if everything you do requires MySQL -- then use RDS); you'll want your data as close to your web tier as possible, so if you are spread across all regions you'll just want to pick a region with the smallest latency to MOST of your customers (typically West coast if you have a lot of Asia/Aus customers and East coast if you have a lot of European customers).
Want to Go to 11?
If you have the money and desperately want to go to 11 with this regional-scale (which I love to do, so I am sharing this) you can combine services like DynamoDB and SQS to effectively create a globally distributed NoSQL datastore with behavior along the lines of:
1. Write operation comes into a region, immediately write it to the local DynamoDB instance, asynchronously queue the write command in SQS and return to the caller.
2. In 1+ additional EC2 instances running daemons, pull messages from SQS in chunk sizes that make sense and re-play them out to the other regions DynamoDB stores; erase the messages when processed or if the processing fails the next dameon to spin up will replay it.
3. On reads, just hit the local DynamoDB in any region and reply; we trust our reconciliation threads to do the work to keep us all in sync eventually.
NOTE: If you prefer to do read-repairs here you can, but it will increase complexity and inter-region communication which all costs money.
The challenges with this approach is that you pull up a lot of DB concerns into your code like conflict resolution, resync'ing entire regions after failure, bringing new regions online and ensuring they are synchronized, diffs, etc.
There is a reason AWS doesn't offer a globally-distributed data store: it is a really hard problem to get right once you make it past the 80% use case.
Your data will determine if this is an option or not; some data allows for certain amounts of inconsistency in which case this strategy is awesome and works great; while other data (e.g. banking data) cannot allow a single wiggle of inconsistency in which case pulling all this DB logic up into the application is a bad idea. Your failure scenarios become catastrophic (e.g. your conflict-resolution logic is wrong and wipes out the balance from an account; or keeps re-filling the balance on an empty account... something bad basically)
It is all a trade-off though; if you managed your own Cassandra cluster though, Cassandra does all this and much more for you automatically; but then you just put your time into Cassandra administration instead of developing the logic around DynamoDB (or SimpleDB, or MySQL, or whatever); just pick which devil you feel more comfortable with.
I am not aware of a services company yet that offers cross-region AWS datastore deployments yet; Datastax and Iris Couch will setup things for that like you via a consulting/custom arrangement, but there isn't a dashboard for launching something like that automatically.
Hope that helped (and didn't bring you to tears of boredom)
I'm in one of the us-east zones and I haven't had a failure in at least a year. They retired one machine I was using and dealing with that was as simple as starting and stopping -- at a time I chose.
With five zones in U.S. East, the probability of a zone failure affecting a single zone systems is 1 in 5.
If you're a busybody who spreads your system across five zones, the probability of a failure affecting you becomes 1.
You're spending more money, and dealing with a lot more complexity, all to increase the probability that hardware failures will affect you.
Now, you're hoping that a zone-distributed system will be able to recover from failures, but that's tricky to do and it's quite unlikely that this will work if you haven't tested it. Add the fact that all the other "cool kids" will be trying to recover their systems at this time and make AMZN's control plane go down.
In the meantime, with probability 4/5 I'm sleeping through the disaster and the first time I hear about it is on hacker news.
Sorry to be fatalist, but it's a hard problem. This last outage was more than just an AZ failure. Region-wide API usage was affected, so operations like static IP reassignment and ELB changes were not taking effect. This means you are hanging out in the wind should there be something unusual that requires manual intervention (as was the case with us).
Route 53 is a good service but I don't know how its control plane works, and it could be that problems in a single region would disable the ability to update DNS records (I would guess that DNS reads are a lot more available than writes). And in any case DNS is not a very good failover mechanism due to upstream caching.
Unless your business model requires higher reliability than Instagram, Netflix, and Pinterest, I'd suggest going multi-AZ, crossing your fingers, and doing everything else right.
Anyhow, sorry I don't have a simple answer - I'm not sure a simple answer exists.
1. Use Rightscale. You can get away with the free edition, but for $500/month the basic paid edition will allow you access to arrays and all the excellent scripts available on the marketplace.
2. The front end. I would strongly suggest moving away from ELB. We are using it and are about to get rid of it. The main problem is what exactly happened last night. If a whole AZ goes down, the ELB for that zone can get screwed and the DNS was not updating the CNAME to remove the bad zone. Instead of ELB, we have our own LB solution we are going to roll out that will use Rightscale server arrays and will handle the updating of the DNS names itself. We also aren't going to use Route53, because we learned last night that the API for that can go down and you can get stuck with bad DNS records.
3. Application servers. Use at least 3 AZ and have them evenly spaced. This is easy to do in Rightscale with sever arrays. Make sure your voting ration for scaling isn't 50% because you might not scale correctly if you loose 2 AZ. Keep the vote to 30% and you will be happy (if one zone votes to grow, let it grow).
4. Database. This is the fun one. We have been using MongoDB with pretty good success. Our multi-shard DB has 3 servers per replica set and has them distributed equally between AZs. We use 4 EBS drive RAID-0 drives for storage which have had problems in the past due to the outages that EBS sometimes has. Our best bet has been a watcher process that will kill the mongod process if there's any problems writing to the drive array. By doing this, the replica set will automatically failover to the next server and we won't get stuck with a primary node that can't write back to disk. For backups, we just freeze the writes on the secondaries and do EBS snapshots even 15 minutes. Rightscale has some great EBS tools for managing this for you. If you loose a server, we can deploy a new server in a matter of minutes and it will rebuild the RAID array from the last backup so we have a warm spare.
5. Monitor, monitor, monitor. Rightscale has some great tools for monitoring everything. Use them, and use more monitoring on other infrastructure (ie Pingdom)
Doing something like this will cost a lot more that just sticking to a single AZ, but you should be able to survive one, if not two complete datacenter outages.
PHPFog are on AWS and I pay them to make sure they have the redundancy worked out. If they don't, I would yell at them until I got some money back.
I am considering configuring RDS for Multi A-Z, but need to research it a little more first. From what I can tell you just click a button to turn it on, but there were a lot of people complaining yesterday that the fail-over didn't work at all when it was supposed to.
I also have a bunch of EC2 VMs that do back-end processing and have a load of CRON jobs on them that need to run once every 24 hours. If these go down for a couple of hours then there is no noticeable impact to my customers, they can still log into my service and access their historical data.
I have considered spreading across multiple regions etc but at the end of the day it's just too expensive for the small increase in reliability.
I don't think they show how to do ELB across Regions, or diversity against single-ELB problems (although I haven't seen ELB fail yet). You'd probably have to build this yourself.
1) Has AutoScaling Groups & Elastic Load Balancers in two regions (and only two availability zones; let's keep front-end instances in the same AZ as your local/region-specific DB)
2) Has Databases in two regions and uses Master Master replication
3) Instances talk to their local DB. If they detect their local DB is down, they failover to the remote DB (ie, the far region). If they failover, they notify you.
4) DNS does geographic load balancing (pre-ELB). You'll need to use a provider like DynDNS or UltraDNS to give you Geo Load Balancing & Failover. Or, you could pair a monitoring service like CatchPoint with Route53
5) Application caching (Memcache, Redis, etc). Let's not put more load on the DB's than necessary.
That's a good start, at least.
Code Like a Pythonista: Idiomatic Python (http://python.net/~goodger/projects/pycon/2007/idiomatic/)
Common mistakes and Warts (http://learnpython.pbwiki.com/PythonTricks)
How not to write Python code (http://eikke.com/how-not-to-write-python-code/)
Python gotcha (http://eikke.com/python-gotcha/)
Here's the stack overflow thread I was looking at:http://stackoverflow.com/questions/356161/python-coding-stan...
If you need something longer, the official Java Coding Style is getting a bit old, but Java is probably the language where you're least surprised when you start working at a new company or project.
Other than that, I prefer actual books that don't just focus on indentation, but go beyond that, like Perl Best Practices or Smalltalk With Style.
Here's a direct link to the flippa.com auction:
I'd love it if this site went to a fellow HNer who could actually turn it into something marvelous. The domain had so much potential and successfully grew with my limited posting.
But, as dayjobs go, the one I have isn't too bad, and it pays the bills while we work on bootstrapping the startup. So it's kind of a mixed bag. Probably the more troubling part is the sense of the "opportunity cost" of every hour I spend playing code monkey for somebody else, and thinking about the value we could be creating in that hour, and what it could mean to the startup. When I think about that, I find myself getting pretty frustrated. But, I like the people I work with and what-not. And the travel is an opportunity to meet some new people, explore new cities, etc. But, again with the opportunity cost... and travel wears on you in a way as well.
I guess that's a lot of words to say "I have mixed feelings about my dayjob, but it suffices while I work on the startup." :-)
I've given myself 9 more months to replace my salary with consulting and product revenue (hopefully more of the latter). I have dependents, so I have to plot my escape from the cubicle with care.
A lot of us will be interested and happy in our jobs, but we will also have the yearnings to have a crack at entrepreneurship ourselves.
This definetly gives me a bit of an unsettled feeling, and I need to get it out of my system before I can really accept full time employment with 100% satisfaction.
The only thing that would entice me to move would be a job abroad: my family and I are planning a move to New Zealand or Australia in the mid-term future and it would be a fantastic stroke of luck to get a job offer now that would let me work from one of those countries.
I work in an odd environment. It is an academic/research institution, but my role is a standard IT position. I am primarily expected to do system administration tasks and small data management assignments. In general, development is frowned upon. There seems to be a ceiling in opportunity here due to both my "lower" credential (MS rather than PhD) and perception of what my role is by outsiders.
From a more general perspective, I made a critical error when entering the job market at the end of the first Internet boom (early 2000s). I did not take a development job, but rather a test role at a large IT company. It took me several years at that big IT company to realize that this colored perception of my skills and limited internal opportunities despite a MS in CS and significant programming work on the side.
I left for another company where my job role was related to db skills I had picked up but was a greenfield project. That was enjoyable and a learning experience, but the project was cancelled and the entire team laid off in the early days of the financial crisis.
I landed on my feet in my current role. The role has turned out to be quite different that originally pitched to me, but I have a senior title and pay level. The job just doesn't provide much in the way of personal growth.
For family and lifestyle reasons, I will not leave for at least a year. I have been developing some interest in statistics, modeling, and machine learning. While I would prefer not to simply seek another credential, my employer would probably allow me to obtain a MS in statistics at their expense. Perhaps this would lead to more interesting and challenging work, but to be completely honest with myself, my current role is where many people with that background windup anyway.
To somewhat worsen matters, I am often much more attracted to niche technologies (APL,KDB+,J,Common Lisp, Clojure, Ruby) than the market in my area seems to offer employment opportunties for. I probably need to consider re-entering the Java enterprise programming world and not be a prima-donna about programming language.
But early lack of good management and now a chronic lack of resources has turned it into a stressful drag. I'm pretty much angry at everybody all the time now and it's not good on my health or well being.
Looking to move soon, but waiting for company to sell first (imminent). Probably wanting to move to the West Coast -- Seattle or Bay Area next. Probably end of the year is my goal.
We work in a cool office with the other teams and the community is amazing. I absolutely love it. That feeling where you just love coming in and working and spending time with everyone. This helps our product but also improves the quality of life. I do remote work for two other companies to help with living expenses, and the I still like that but it's nothing compared to being a cofounder and getting to do the things that come along with that.
Note: I'm 18, and just one year out of high school so I have some flexibility and can handle a decent bit.
That said, consulting fits my lifestyle well. I get on a project, complete it, and then am done and can pursue some of my other interests (music, poetry, human languages, travel) with a minimum of interference. As a long term solution I think I would kill myself if I had to keep doing this forever, but as a solution to make money for the last couple years it hasn't been terrible.
As of now, however, I am simply unhappy and seeking the next best thing. Creating my own company or joining a fledging startup has always been of interest, but my lifestyle doesn't allow a 60hr/week commitment as of right now.
Happy at a 9-17 job which involves Linux, network, concurrency and C++ and is close to the metal yet still involves a huge set of features. This combination makes it challenging.
Industry that I work with: Semi-happy
Billing rate: Happy
Working for large corporate clients doing challenging but repetitive tasks: Not happy
Bottomline is that I have the "bootstrap a company" itch that I am looking to scratch asap.
Looking into moving to a developed nation.
Couldn't be happier!
Pick a small(ish) project and go at it in both frameworks. You've said that you have friends who know both, and you've already got a handle on web dev through PHP, so maybe Rails one weekend, and Django the next. Now you know which one you like the best, rather than relying on other peoples' opinions.
You have one really good argument for going with Django: your friends use it. You can ask them tips, talk about it, and they certainly help you in the right direction.
Aside from that, I recommend you to try the Django tutorial, shouldn't take you more than a couple of hours https://docs.djangoproject.com/en/dev/intro/tutorial01/
Also, the small webserver bundled with Django will restart automatically whenever you change a file.
If I had to give my opinion between Ruby or Python; I would say Python, as it is multi-disciplinary. Python can be used for everything from website to high performance computing and have great communities backing them up allowing you to be a more fluid and interesting engineer; Whereas Ruby (and its defacto framework, Rails) tends to be geared towards just web development. Just my 2 cents.
Python while a nice language that I have tried, I absolutely hate the indentation, I hate to have to write code and care about its indentation, I prefer to write my code without caring about it and let my editor format it for me when I'm done or need to read it.
As for Ruby while I can't talk much about the language, the comunity itself kind of scares me, I have the idea that they are some sort of zealots who attack anyone that doesn't use Ruby. (sorry Ruby guys that's the feeling I have), the little I know about the language is that I don't like the syntax much but I am a C like syntax lover.
Now for PHP one of my loved languages (Java and C++ are others), I like the syntax, I like to have braces on my code makes it easy for me to read, but I guess on how much you are used to it, there are some nice libraries too, but some are heavy (Zend is one of them, does a lot but it's heavy), a lot of things that I do are done in PHP, while it may not be the fastest code running, it's one of the fastest to write.
Once again beware, this reflects my way of viewing the languages.
How much value does another similar backend language give?
My thoughts on this would be: Not to much. I would rather look for something that makes you a more interesting engineer. You could e.g. learn to make android apps. That would make you a quite valuable person being able to code mobile frontend and a backend service. Or a backend language/framework that is far different and let's you solve problems that you run into with PHP on high traffic websites. Some companies started using Scala for high performance parts of their service. Or get a good understanding of Apache Lucene a search engine.
But something that is more different from PHP and will make you a more interesting engineer.
There are no downsides to knowing all of these web frameworks, eventually you will find yourself in a position where company X only wants Ruby, or company Y only writes python.
Two winners will be selected. All you need to do is visit http://www.tinypiano.com/giveaway/ and like the Tiny Piano Facebook page. :-)
I noticed you also have in-app purchases. Do you make much money off those?
I have a site in this niche that offers encouraging tips to ios developers and entrepreneurs.
Would you be up for doing an interview? It'll be all text based.
Email me here: tapha[AT]taphamedia.com and we can get it going if you would like to do it!
I might try doing some giveaways (contests) on my FB page. I find that giveaways on sites like engadget tend to generate a lot of traffic.
We have a good roadmap of solutions to provide you everything you need to run business. Analytics and a few other useful integrations based on customer inputs is in the works. We are still in private beta working with a short list of customers whom we are working with closely (though we are unable to serve everyone immediately as some of the payment integrations are due to be completed by July / August).
We have integrations readily available with BraintreePayments (US), Samurai (not sure if they still do underwrite new accounts and we did this earlier), WorldPay (Singapore). Authorize.net will be ready in another week.
And we support multiple payment gateway integration. We do not have a vault to store card with us and we store in the respective payment gateway.
Here is the link to our API docs: https://apidocs.chargebee.com/
I am one of the founders and will be happy to help. :)
2.9% feels expensive, but when you realize you don't have to set up any subscriber / coupon code / plan configuration logic, each charge seems a lot less scary.
It's also nice that their pricing is all flat-fee per-transaction.
2. Armed with #1, hit up your local news media. This kind of coverage is easiest to get and builds the social proof that you can use to build on your media coverage with the bigger outlets like nytimes, TC, etc.
3. Reach out to the main bloggers in your space and start building relationships. You are much better off spending 3-6 months building a relationship and then hitting up for coverage.
4. As you are doing the above, build and optimize your site's funnel to convert the visitors into users.
5. Obviously have presence on twitter, facebook, linkedin, wikipedia, etc. Why? Because every journalist will google you and the various social media profiles are the first things to pop up on google.
6. Google analytics is your best friend. Measure everything. The stats will also give you motivation to keep on keeping on.
7. During this entire cycle, keep brainstorming ways to develop new human interest stories that you can use to generate new publicity.
Let me get a couple of things out of the way first. Your startup is not your website. The website is the store front. What you are asking about is not promoting the startup but about how to design a good marketing plan. A marketing plan is a combination of marketing tools/resources combined and used to achieve one goal: profitable sales.
Ok, now let's talk about the two different ways you can approach this problem. In marketing there are two main audiences: general and direct. The genereal audience is anyone and everyone that may read/listen/watch your marketing tool. The direct audience is composed of people who are the most likely to buy your product because they have bought a similar product or fit your ideal customer description (The ideal customer descirption is basically you saying that people who bought X, have Y, carry a given credit card, live in Z are most likely to buy my product).
Ok, which do you use? In my experience, marketing to a general audience is a waste of resources, because it just eas away too much time and money. It is also harder to measure and keep track of. The direct approach has always proven itself to be, well, direct. It is completely measurable, and depending on the marketing tool being used, can be modified on the fly to see if something works better. Direct marketing is about talking directly to the customer. The best definition I can come up with is that it is as if you were sending a professional sales person through your marketing tool. If your tool is a targeted email, then imagine as if you were sending a sales person through the email message and the sales person pitching the sales message to your prospect directly. This is why direct marketing is has a better profit/cost ratio. It allows you to test, test, test marketing tools directly with the customer without having to buy expensive advertising campaigns/spots.
What are some good direct marketing tools? Almost all marketing tools available out there can be used as direct marketing. TV? The late night commercials selling pots and pans are evidence that it works. Radio? Same. Print? You betcha. The question should be: what combination of marketing tools do I have to use to make up a good marketing plan? Let's answer that below.
What you want is to: first, define your ideal customer description. If you don't have a clue, then look at your competitors. Who is buying their products? Second, find how can you reach those prospects. Is it through email? Regular mail? A video brochure sent to their office on a thumb drive? A skype call? A telephone call? Third, find out how they buy. Some people (include companies) buy when presented with a lot of print materials. Others require a sales person to visit them. Other might enjoy a night out drinking. Find that out.
The point to the marketing plan is to define a general multi-step pattern that will allow you to duplicate any succesful marketing efforts without much problem. For your business it might be a direct sales letter inviting the customer to visit your website to watch a two minute video presentation. Then a scripted telephone call with the customer that will focus on answering any questions. Then if you cant close on the sale, an email highliting your offerings, and giving the person a chance to get some special order. And so on.
When you think of marketing, don't think of funnels. Think of ladders. What steps do people have to take in order to get them to where you want to.
Ok, break time. Think of puppies for ten seconds. Now back to this.
What are some good marketing tools that you can start with? Depends on your business. It really does. I can't give you any insight into this because I dont know if you sell cars, chairs, or helicopters. The product has a lot to do with how you market it. You don't market a Rolls-Royce in a shitty youtube video, just like you don't market cheap web hosting on the Wall Street Journal.The internet does make this a bit simple. You can create a simple marketing plan to get things rolling. In general terms, an email campaign is a good start. But how do you get those email addresses?
Welcome to the second part of this post.
Have people find you. This is going to sound wrong, and against everything I've said about direct marketing. But, direct marketing is not a one way deal. Direct is about talking directly to your customer. Doesnt matter who starts the conversation, as long as it takes place. You can make people find you by creating content that they find valuable. Things like blog posts, newsletters, podcasts are great tools that allow you to start a conversation with the people that want/need your product. Just dont fall into the trap of limiting your marketing to these tools only. It is a huge mistake to do so, because it limits how much you can sell.
Create a good landing page (a squeeze page), a blog, the miriad of social accounts and what-nots, and start crunching out valuable content. Do you sell diapers? Talk about diaper rash, diaper fitting, how to dispose of diapers properly, but dont talk directly about the diapers you sell. You want to give people a taste of your knowledge, and then have them give you their email address so they can learn more. Information is priceless. People will feel indebted when you give it away for free. Remember that.
What about those bloggers, journalists, and news people? Forget about them (for now). Not worth your time. Focus on getting the customers directly. Fact: if you sell enough of your product, the bloggers/journalists will come knocking on your door.
Now, some random thoughts, because it is 10:10 PM and I have to go to sleep.
-- Talk to everyone you know about your product. Just do it casually.
-- Do not be afraid of selling. If you can't pick up the phone and call a customer, then work on that first. In fact, email me and I'll call you! Email in my profile.
-- Realize that marketing is a full-time job. In fact, it is the most important job in your startup/business. Become fairly good at marketing and your business will grow.
-- Your startup is a business. The word startup is wrong. Think of it as a small business. Just because you dont have a bick and mortar store front doesnt change the fact that it is a business. A business lives or dies on marketing.
-- Your startup is not about the software. Whatever you sell is your product. Dont obsses about: programming language (pick whatever makes it easier to prototype), framework (ditto), design too much (make it pretty but dont go broke on designers), the website, the name, the address, the office chair or desk (the $22 desk was interesting, but unless you sell desks it wont help you much). Focus on selling the product. Not on the produc itself.
-- Email people in the industry (the industry you are selling to). Do you know how much valuable contacts I've made by just sending an email with the words: Hi, I really like what you are doing with X. Wish you great luck with it. Tace care, orangethirty.Do you what happens next? They either ignore me (which saves me the hassle of dealing with assholes) or (most likely) they will answer with a thank you. Most will ask what is it that you do, and the rest is just easy. Dont be afraid to email people. You are not spamming them. You want to meet and ge to know them. Most people are worth meeting, even if through an email.
-- Print some nice business cards, but dont pay more than $50 for them. Also dont hand them out to everyone.
-- Advertise your email address, and please dont put a contact or sales @yourstartup.com. Use your name or a fictional name. Makes people less resistant to contacting you.
-- Read some marketing books.
-- Hire a good copywriter. If you need help with this, email me. I can help you with making the choice. The words used to sell your product must be carefully engineered. Just like you dont write variable names like this amount_ofProduct_leftOn_inventoryPer_disctrict, you jus dont write sales copy without a basic guideline.
-- Realize that marketing != lots of money. It does require a lot of thought and detail.
-- Realize that everything Ive said may not work for you. Huh? Maybe you can sell your product with a SEO campaign and a landing page. But that would still constitute a marketing plan. So think about that for a second.
- Be open to new ideas. You know who is rich? The guys that decided to sell advertisements through internet searching (yeah, google). Test all ideas, and be open to re-testing them in the future. Dont label anything permanently.
-- Reach out and help people. Good sales can come from helping local organizations with their needs.
-- Above all, dont ever, ever think that marketing doesnt work. It does work. You just have to become good at it.
-- All free advice is cheap advice. And cheap advice dont work. Hit some books, contact some professionals, and get working.
Ok, so now I have to go. Sorry for the huge post, and I deeply apologize for the mess of a post Ive made. Im tired and need to sleep.
If you need any help, just shoot me an email.
PS. I dont want to sell you anything. Hell, I dont have anything to sell. This post is not some thin-velied attempt at getting some gigs.
1. Sign up for lots of products and reply when I get an email that looks targeted and based on my behavior. (I want to learn how they do it and what pain they have)
2. Write personal blog posts that are totally unrelated, and have an "About me" section to send curious people to your company. Two that were on the front page of hacker news were "Burnout is caused by resentment" and "A standing desk for $22".
3. Write company blog posts about how we built our product. Most recently: "How we built our HTML email editor using liquid, wysihtml5 and premailer"
4. Work in a highly visible coworking space (we're in General Assembly in NYC).
5. Build relationships with people who sign up on your launch list by sharing interesting things you've learned (did this last week and got a phenomenal response).
6. Ask VCs to introduce you to their portfolio companies. Ask the portfolio companies to understand their problems, not pitch your wares.
7. Tap your network for advice and help.
That's what we've tried so far that has been beneficial. Good luck!
I personally find it frustrating to have the skills to build a high quality, robust, elegant application, that meets a real need, but to not have the ability to market that to a critical mass.
Rather than spending my time reading about the latest tech news & coding techniques, I feel as though I should spend my time studying up and learning about marketing from first principles. It's by far the biggest obstacle to the success and lifestyle that most people frequenting this site have.
I've read this blog post: http://blogs.balsamiq.com/product/2008/08/05/startup-marketi... and will strongly recommend it. After reading it, I went to the google, spotted a couple of competitors, entered their urls respectively in Bing Link explorer for webmasters to discover who wrote about them, I then went to create a list and retrieve some bloggers names and emails in a spreadsheet , wrote a short pitch template inspired from the balsamiq pitch, and got the got the software http://www.bulkmailapp.com and a Lite sendgrid account (a Free account is enought if you send ~200 emails per day or less) , I then proceed to send a personalized batch email to all the prospects on my list. The response rate is over 25% so far, when they don't cover me, they at least reply and ask a couple of questions.
The second approach: set a blog and go to http://www.fiverr.com , have some descents writers (look for journalists) write blog entries about keywords you actively researched and somehow relevant to your startup, set your blog at www.yourdomain/yourblog/ and publish the stories on a regular basis, start blogging on a regular basis.
For your main webpage: Do your SEO Abc... create a twitter account and search queries relevant to your startup and start tracking/monitoring them and engage in the conversation when it's possible.
That's what I've been doing so far, I will write a blog entry about it. I hope this could help for a start.
P.S.Sorry for my english, not a native speaker.
A small-business product like yours is the ideal candidate for that model. Small business owners are relatively approachable. You can often get a chance to talk directly with the decision-maker and try to show them the value. More importantly, you can listen to what they think their problem is. You will learn a ton about how to frame the value-proposition in terms that resonate with customers.
It's almost comical seeing the lengths that many introverted technical founders will go through to avoid talking to people, when that is by far the most effective path forward.
Worry about scaling up your sales process after you've hand-cultivated a (probably small) pool of happy customers. This helps you polish both the product and the pitch.
* Paid: Ads, other pay marketing.
* Inbound: Blog. SEO. Etc.
* Viral: generate incentives and reasons for users to invite and refer people they know via social networks, email, etc.
* Other "organic" channels: hack your way to the top of the app leaderboard, for instance.
Finding out who those customers are, what they are looking for, and then building it is the correct step.
If you haven't already had this conversation with at least 5-10 customers who are dying for exactly what you're doing, I suggest you stop what you're doing and learn some about the lean methedology.
Basically, hiding behind a keyboard thinking you're creating value isn't creating a valuable startup or product.
When you have confirmed what people want, and you build it, you have your first customers. You know how to reach these people because you know who they are, what they do, how they surf, where they hang out, and lots more.
This is really going to boil down to whether you can put down the code and learn something you aren't familiar with instead of doing busy work coding.
A book like Ash Maurya's Running Lean might be an interesting read for you.
Long answer: Blogging. Seriously. Write about interesting topics related to your startup. Start to pique people's interest in your product. That's where the best (and free) traffic comes from.
But in my experience over the past year, it's surprisingly beneficial. Blog about related topics, helpful resources, etc. That's where a majority of our links pour in from on a typical day.
In short: generate great content.
Email-marketing might sound great for enterprise startups to reach out to businesses directly, but ofcourse there's a limit to it. In my opinion, its the brand and visibility you create for yourself (via blogs, media coverage, backlinks,sensible website) which carries long-term paybacks. If people know about you, they'll come to you when that specific need arises.
Your personal email list is one of the best ways to drive initial traffic and build awareness since:
1. These people know you and (hopefully) trust you2. They're likely more willing to provide additional connections and introductions
When you have a rough estimate of when you want to launch your startup you should be emailing the relevant contacts on your list regularly to keep them up to date on what you're doing and when it will likely be ready. That way when you launch and are trying to drive traffic you already have an initial audience who can forward it on to their contacts.
Past that... yes you should definitely emailing relevant writers with your story, blogging, and generally creating as much great content as possible and seeding it online in the places that matter to your startup.
...including "Kevin Rose - Taking your Site from One to One Million Users" among others
1. Creating Facebook/Twitter presence (1900 followers on both)2. Creating blog with good content3. Contacting other bloggers who are in same domain4. Using Google analytic to analyze our traffic and trends5. Sharing on HN, Digg and Reddit6. Google Adwords
Eric Ries has some really interesting thoughts on this topic. Check out this blog post: http://www.startuplessonslearned.com/2008/11/what-is-custome...
I am still confused about how to promote and how much should I spend.. but thinking that maybe facebook ads are much cheaper than google and can be longer in term if promoting the facebook page.
Find something that you or someone in your life use--or would use if it just did XYZ. Work on that.
If you have a certain skill set that you're looking to hone, tell us about that and maybe someone could offer suggestions.
I am trying to develop an app/site dedicated to matha matics for kids under 10.
do you like?