391 karma · joined March 10, 2014
I don't know you, so I'm not sure, but in my experience you are wrong. I understand where you came from, being a co-founder myself I know at the beginning you have to do the jobs of 15 or more people so you still believe you are as good as them.
But there are two problems:
- You should hire someone that is better than you. Even if you are the best in your field, you should hire someone that could possibly replace you.
- In almost every non menial job, you need to keep your skills updated. You cannot keep up with 15 different jobs and still run a company with 15 people. So after few months you are no more as good as them.
Be aware, you should understand the job of the people you manage. It is ok to ask them why they made some choice, it is ok to challenge them in a respectful way. But they probably know better. It is not just a morale problem, it is a specific problem.
When you become a manager, your task is no more doing their jobs. Your task is to help them become better at doing their jobs. (The next step is to become a leader, where you simply inspire). I saw a lot of managers at different levels (startup CEOs, mid-level manager) failing because they believe they are better at their jobs than their employees.
For instance on the IMSI catcher, from what I understood they are a form of MIM attack where a fake base station connect to your phone and forces it to switch to non-encrypted mode. Why non-encrypted mode exists? Well, in the past (20 years or more) encryption was expensive and base station huge and bulky, none believed it was a conceivable attack. So they introduced a signal to switch of encryption to increase capacity in emergency.
Now you could trick cellphone to switch to un-encrypted and intercept traffic. Why this vulnerability hasn't been closed? Many reasons, first of all even if base station are no longer configured to support this mode, they should accept unencrypted traffic for inter-operability and the same it's for phones. Furthermore, it makes a lot easier to implement devices like personal base station to enhance network coverage in buildings.
Also, there's the "next gen" bug. It is almost 8 years that telco company think about 4th gen technology, the LTE network and VoLTE. This is an paper a totally new systems built with new technology and new threat model in mind. It is not perfect but far better. The issue? Implementation took longer than expected (as usual) and none want to spend money and time in fixing something that will be replaced. Sounds familiar?
For gauging retention I would look at two number, times the app is opened each month (per users) and average number of transactions per month per users (depending on the stage the transaction value could be irrelevant). And I would check the distribution.
Usually you could cluster users in different class (actually, segment them) and you will find a reasonable number to use as a measure for "lost customer". Every customer that doesn't use your app for more than that time, is a lost customer and you use it to calculate the churn rate.
Where you set the threshold is a judgement call, so be honest with yourself, better to estimate a slightly higher churn rate than underestimate it.
Also, understand that retention is an important measure in the long term, so don't optimize for it immediately, but it is strictly related to other important measure (for instance retention influence in a couple of way virality, and a poor retention could be a symptom of bad Product-Market fit).
P.s: the number in the article seems just examples, not number to use as a benchmark.
Obviously it is very difficult to measure this retention, so you measure returning users. But you have to understand your market.
This said, paying for keeping users is not unheard of. Discounts for loyal customer, targeted email for new purchase etc etc...
Usually this value is factored in the LTV (Life Time Value of a customer) and you could play with it to optimize the LTV versus the cost of acquisition (Cost of retention should be lower of cost of acquisition, if it is not, look at your product/service because it sucks).
But from your original question, it seems you have a "one-off" type of service. Think about wedding planners. Your problem is that if you acquire customers faster than new customer are born, you are in trouble. Otherwise it is a sustainable business, just take care because you have an upper bound on your growth and your cost of acquisition should be lower than the profit you get in every transaction (excluded acquisition).
"But I landed the plane on island X, How much it would take me disassemble a piece from the aircraft, hammer it a little bit to simulate an impact, and drop it in the ocean in a place where will be probably washed ashore?"
That's one of the possible answer. Than it could be: "It isn't damaged enough to be in the water for 1 year, they just soaked it and placed on the shore to be found".
I don't believe in the conspiracy theory, but please, don't think this news will debunk them (actually, it is highly improbable an object traveled so many miles, it has been set up :-) )
With the class you could easily change the ordering without having to re-run the command (very useful when the command take several minutes). Also allows you to apply filters (cut the number of lines or apply regular expression) to the output. Usually I filter for the one/two file where most of my custom code is and I check for the hotspot; this remove all Django related calls. Then I select a good candidate for optimization and I dig that functions looking at the code (restrictions are useful in many way). It is a long process, but much less painful than you could expect. But probably it should have a well designed interface to make it easier to use.
[0] https://docs.python.org/2/library/profile.html#the-stats-cla...
First of all, allow me to question your premise. Software engineering is a quite lucrative job in the US in general, and in Silicon Valley more specifically. But in many European countries command average salary (with variations due to seniority, obviously). In Eastern European countries, India and China it is for sure a well paid job but not nearly as lucrative as it is in the US.
Clarified this point, the drivers of such high salaries are resource scarcity and high demand.
On the demand side, there are few relevant uncertainties: basically whether the economy will sustain the growth of the software industry (or, there is no tech bubble) and, on a longer timeline, whether evolution in programming technique will outpace the growing demand for software or not.
On the supply side, the main question is whether there will be an immigration reform or not and how it will impact the tech sector. Furthermore, more people are training now in coding than before, both in universities and after university using bootcamps or similar institutions. So the critical uncertainty is whether the new trained people are enough and good enough.
My humble opinion, given all these uncertainties and their probable resolution in the long term, is that sooner or later, "software salaries" will have to adjust downward. The only question is when and how fast. Aka, it will be something in the immediate or int the far future and it will be a hard landing or a smooth erosion over time?
If you look at it carefully, the accounting rules make perfect sense. Otherwise buying a building (or server) for my company will impact the margin of just one year and it would be difficult. The problem is that Goodwill is difficult to evaluate, so managers could decide to re-evaluate it as they want in order to boost their bottom line. But it is bad management, not bad accounting.
Regarding is point on sales, it is not even accounting, but the dumb use of financial ratios. Usually the company could use the earnings call and the notes on the balance sheet to explain this shifts. But again, it is a call on the management side to explain it and sometimes they prefer not to explain to hide from competitors. They need to find the right balance between hiding their moves from competitor and informing the investors...
echo 'const int main[]={1208,114434,2370306048,2101,834048,84869120,1818577091,1461743468,1684828783,10};'|cc -xc -ot -&&./t
The trick is to use retq instead of a sys call to exit and to strip some of the code that the compiler create when you call a function (pushq %rpb; moveq %rsp, %rbp; movl $0x0, eax;) echo 'const int main[]={3850979413,184,3234285568,33554436,29869896,1207959552,1652109,3343384576,3522,1208291072,114887,3343385088,199,1208291072,1869376613,1919899424,169960556};'>t.c&&gcc t.c&&./a.out
But it is too long to tweet[Edit]
Less compact but more readable:
echo 'const int main[] = { 3850979413, 184, 3234285568, 33554436, 29869896, 1207959552, 1652109, 3343384576, 3522, 1208291072, 114887, 3343385088, 199, 1208291072, 1869376613, 1919899424, 169960556};' > test.c && gcc -Wall test.c -o test && ./testA lot of good software engineer I know prefer lightweight editor like the good old Vim or SublimeText over IDE like Visual Studio, Xcode or Eclipse. That's because when you write complex code your brain is slower than your finger and the syntax and structure of the language you are using is something under your skin, you don't need to think at it.
So, no, great coder doesn't use powerful editors, if they can chose they use very simple one with the minimum level of features they need to help them think faster (syntax highlighting, autocompletion, indention) and stop. All other features of complex IDE are a disturbance rather than an help.
I don't know what a good journalist need but my guess is that they have the same problem, their brain is slower than their finger and the grammar of the language they are using should be well known. I don't know which tool they use, but in my opinion a simple text editor with a minimal spellchecking system (but not correction) well integrated with the publishing process is more than enough.
From an Innovation point of view I'm usually suspect when someone claim to have an innovative tool for an established industry. If the industry is established the actors have already optimized their tools and if there could be an improvement is very small. What usually happens is that something changes in the industry and make the actual tool obsolete (e.g: a new process or a new technology became available). But if you want to create something really innovative, you have to find this change. Simply bringing something existing in a field in a different field rarely works. And if it works is because you have a really good understanding of both fields.