Set it up so he can't fall more than a few inches and he could rollerblade / skateboard around a room with very low risk. This would be a one time thing, but a few hundred dollars could set this up for an afternoon.
Some physical therapy places have similar setups (Unweighing System) http://www.biodex.com/physical-medicine/products/pbws/unweig... which you could use more freely. Which you could buy if this was going to be a regular thing http://physicalenterprise.com/biodex-offset-unweighing-syste...
Poor man solution without any special device - youtube 360
Youtube 360 Video Downhill Skateboarding VR | PEOPLE ARE AWESOME 
Click, drag in video to control view point
If you live in NYC, they are are available for testing at Google NYC Pop-up store .
(Disclaimer: I work at Google, but no connection to VR team)
Rodney Mullen From 1984: https://www.youtube.com/watch?v=SfpmO9cPGGY
For more info on VR, I recommend you to visit the VR subreddit, people there will help you out for sure; https://reddit.com/r/vive
Additionally, by far the "realest" VR headset out there is the Vive, because it allows you to move around in a room, which I think would be essential to a locomotive experience.
It's basically a trade-off: it is exchanging the skateboard or inline skating feel for something that is more real and independent.
Would you happen to have the name of that product, that's the sort of thing I think a lot of older people would be into, rather than games, etc.
That being said, the best tech out there currently is the Vive IMO, with the Rift likely tied once its touch controllers ship this December. Both have 6 degrees of freedom when tracking you. But right now the Vive is the only system that officially supports tracking your movement within a few square meters, and has motion controllers supported. That means within a room, you can walk around in both real life and the game world simultaneously and reach out and interact with the virtual world. The presence you get from that kind of experience is impossible to describe. Once the Rift's touch controllers ship the two systems will likely be on par with each other.
The mobile headsets all have 3DoF tracking. That means that the rotation of your head is tracked, but not its position in 3D space--taking a step forward in real life won't also move you a step forward in the virtual world, but the direction in which you look will be 1:1. You don't have as immersive experiences on them because of that, but for experiences where you're a passive/seated observer you can still get a VR experience for a tiny fraction of the price of a Vive/Rift + VR capable PC. Their performance depends on the quality of your phone.
For your grandfather I'd actually recommend he try and get a demo of the Vive or Rift on the floor of a PC store. Microsoft and Micro Center stores were both giving demos of them when the Vive debuted. That way you could gauge how much he enjoyed the experience and see if it's something you want to invest in for him in general. Maybe pick up a cardboard and find 360* skateboarding videos on Youtube just for him to experience it, if you were going to buy anything blind--that would be a ~$20 investment, and for those sports specifically you probably aren't going to find anything better on the high end systems.
In most western countries, SIMs do little else; however, they are full application platforms, allowing stuff like Kenya's mobile payment network https://en.wikipedia.org/wiki/M-Pesa.
For what it's worth, you really don't want to have every network provider negotiate with Samsung for the particular access policy of that network. "Not compatible with your telephone" indeed!
With SIM cards, users can switch to a new phone by just moving the SIM, or switch to a new provider while keeping their phone (assuming its unlocked) by just replacing the SIM.
Prior to SIM cards phones where frequently programmed to be tied to a specific provider.
A pure software solution could work, but requires the network operators to be able to trust the phone manufacturers to secure it well enough to not let end users change things in ways they're not supposed to (e.g. consider a hacker harvesting authentication details from phones). The SIM card is the simple solution.
But I'm glad for it, because the foresight of the designers of GSM to put your private key in a smartcard has absolutely improved consumer choice worldwide. I can buy an unlocked phone, travel to any country, buy a SIM card at the airport and pop it in my phone and the GSM(/UMTS/LTE) standards say it must work.
A software-based system will quickly devolve into a "oh we haven't approved this phone on our network, sorry we won't activate it" and other anti-consumer activities you saw on the ESN-registration-based US CDMA networks.
Hopefully when the GSMA adds eSIM to the standard, they add protections for consumer choice, but in the current corporate climate I fear they won't.
The SIM is what separates your identity from the hardware of the phone (which has its own identity called 'IMEI').
A 'software solution' would need a carrier, that carrier IS the SIM.
Another nice benefit of having the SIM device is that it makes it much harder to 'clone' a subscriber ID, something that would regularly happen in the days before the SIM card, note that the SIM was a development that came along with GSM, and that GSM was the first mobile phone standard resistant against cloning. It's one part of the 2FA (something that you have) that gives you access to the phone network (the other being the PIN code (something that you know) required to unlock the SIM).
Broken phone? Pop the SIM card into another phone, and you can immediately make and receive calls & texts on the new phone using your phone number.
If you had no SIM card, how would you authenticate yourself to the cell network (that's what the SIM card does)? Going online and then providing a username/password? This would be horrible security-wise as we all know people are terrible at picking secure unique passwords. So hackers could try to guess your password, then they would use your account, receives your calls & texts, and they could steal your cell data, causing you to receive large cellphone bills, etc. A total nightmare.
Quite a few years ago (2005?) a family member purchased a Samsung-branded dumbphone on a contract. (Monochrome LCD (something like 128x64?), polyphonic ringtones, 3 fixed games, a (really slow, GSM data) WAP browser; that was it. Model SGH-something, I vaguely recall.)
It had no SIM card slot. It was locked to the network (Orange - in Australia FWIW) via software. In order to unlock it we had to call up the telco and go through some process, which we decided not to do in the end (whatever it was, I don't recall), since the phone had less capabilities than the Nokias that flood India and similar places, so we concluded there was no point selling it by the time we dug it out one day and tried to figure out what to do with it. (It's still buried in a box somewhere IIRC.)
I think this is why SIM-less phones are reasonably rare - it's really, really hard to de-contract them, unlock them and put them into sellable (or whatever) condition. Then once you've done that the recipient has to go through some equally arcane process to get the thing linked to a plan/contract too. And considering the ability to pass a phone on is a fairly major selling point - phones aren't solely purchased [preconfigured] on plans, then disposed - I think this was explored somewhat by the industry but ultimately left alone.
Some of the other things I've found in this thread are really interesting, although I wonder how difficult it is to "unconfigure" such a device to sell or pass it on.
I must add you can find flip phones cheaper than cost of lightening cables.
The GSMA and members (i.e. telcos) have been working on secure remote provisioning. I think it'll take a while for the technology to make it in to consumer devices, though it's likely to be used in IoT relatively soon.
It takes a long time to spec these things up collaboratively and then even longer for telco's to act on it!
See: http://www.gsma.com/rsp/2016/04/27/esim-opportunity-operator... and http://www.gsma.com/rsp/ (Warning: Lots of marketing BS)
In 3rd world countries, people regularly swithch their SIMs as they travel across borders because no one has cross-country access. Taking a SIM out only uses up a minute of your time, and standizing on a hardwardware dongle like that is great because if company A goes out of business, you just grab a new SIM and stick it in.
It's a bit harder in the US, where phones are locked to their providers, and you need IDs to buy SIMs but that's really all just a regulation issue, not a technical one.
No, it is the opposite.
It is exactly done like this so you only need to get the sim card and not need to have the operator decide for you (of course people shoot themselves in the foot by signing a long term contract while getting a locked mobile phone)
I hear you that it should be doable in software, although I'd argue that if anything you should still need the SIM as a sort of second factor. (Otherwise you run the risk of people stealing your phone account remotely).
As for why you still need them, I see some reasons:
1. The alternative may be worse. At least with SIM cards you can switch operator when you want (if the phone is not carrier locked, bleh), or use a local prepaid SIM when abroad.
2. Inertia. Removing the physical SIM would require getting operators and phone manufacturers to coordinate.
3. The IM card is what securely identifies the owner of a phone number, and makes sure they are not two phones with the same number. With a software SIM, if it is done wrong, you risk getting malware that steals your phone number.
Personally, I think we will eventually see SIM-free data only connections without a phone number. You really should be able to buy an LTE tablet, get online and just pay for some data. Apples has been trying a bit with the Apple SIM, but it is US only, and only works with a few operators.
Honestly, I wish their use would expand into other areas of our lives -- replacing username and password combinations for various devices (working for an ISP, home routers are one good example).
As much as I'm against the idea of a mandatory "national ID", I'm convinced that it will happen someday (in .us, where I live). When it does, I believe it'll be something similar to US DoD's CAC : a physical identification card that doubles as a smart card. The private keys stored on the card will allow you to prove your identity to your banks/financial institutions, e-mail account (100% encryption of all e-mails? Yes, please!), and so on.
It also is a classic telco hedge.
Step 1) We need towers to make this thing work. Let's build towers.
Step 2) These towers are super expensive and make the expense amortization complicated. Let's sell the towers and then lease from the buyer.
Step 3) oh crap. There is no encryption and people are cloning handsets. Let's use SIM cards to separate sensitive operations from the rest of the device.
Step 4) manufacturing sims is complicated. Let's buy sims from other suppliers and make them sign off on unlimited liability clauses if their identity solution is compromised.
It is all about two things: Preventing a single player from having too much power on the ecosystem and transferring financial risk. There is no evil plan. It's all rather mundane.
If I recall correctly german ISPs are trying to find a solution there by embedding the SIM into the device and then branding it on changing provider.
The problems SIM cards are (trying) solve is largely to "secure" the phone network. This mostly boils down who to send the large bill when shit goes fan. (The mobile network is pretty much non-secure, which is why SMS-2FA is not a good solution at all)
(They're also technically a backdoor for your ISP to do whatever they want)
Anyway, the reason SIM cards haven't died yet is probably because there is not much reason to replace them. They're tiny (so Apple doesn't kill it for half a millimeter of thickness) and pretty useful for the ISP to setup certificates and connection details.
In the U.S., LTE is the first time that CDMA phones have had sim cards, that's ~2 years ago.
The software solution (using IMEI and PUK) is the old technology. It's less secure; verizon and sprint will charge you ~$40 activation fees, etc.
Apple have begun a limited initiative towards just that: http://www.apple.com/ipad/apple-sim/
Telephone and internet connectivity should really be like electric supply and other utilities. We should be able to connect wherever we are and pay as-we-go through our device.
As an interesting aside, here's look at just how complex SIMs are: https://news.ycombinator.com/item?id=12674846
They are practically equal to the computers we were using 30 years ago!
A 100% purely software solution can be built based on white box encryption. It's slower and may be more easily attacked than a hardware protection (you never know if/when some genius mathematician or physician (quantum cryptographic attacks) breaks your encryption. But it has the advantage that it can run on all devices. cf. eg. https://www.trustonic.com/solutions/trustonic-hybrid-protect...
Then of course, there's the problem of key management and distribution thru software. Using a physical token has several good security properties. Replicating them in software (encryption) is difficult and error-prone. For end users, and service provides, it's much easier to swap a SIM card, than to install securely cryptographic keys and authentication tokens into his trusted execution environment even with the help of well written software.
It amuses me that these slim-SIMs, and SIM cards in general, are one of the few pieces of technology that are utterly opaque to the user and yet are so widespread.
Edit: For example, I recently upgraded to an iPhone 7, at the Apple store. This required a new SIM card, but the salesperson was very careful to return the old SIM card to me. Why? What am I supposed to do with this old SIM card?
I don't understand how you came to this conclusion.
I move between networks very regularly due to frequent travel to different countries. Pulling out your old sim card and putting in a new sim takes maybe 2 minutes. You are then immediately off your old network and on the new network. Once you have the sim in your possession you don't need to talk to anyone, fill in any details, log into anything or even remember anything.
Short of some process that is 100% automatic I can't imagine a more low friction process.
It lets you virtually subscribe to a network, so for example if you're traveling, you don't need a local card just pop up some software and choose a new network.
Apple already has some devices that implement it, AFAIK, the iPad Pros use this. Apple calls it Apple SIM (https://techcrunch.com/2016/03/23/explainer-alert-heres-what...)
Why would I want a SIM card with one IMSI on it when I can have a SIM card with up to 20 IMSIs from various networks all around the world, or even better the ability to constantly swap and trade IMSIs from various networks, new connectivity set everyday. A global community calls for global connectivity.
Same with switching devices and keeping a provider. Using a SIM, takes about a minute. Not using a SIM? Call them or whatever, maybe pay a fee.
Here I am, asking myself why smartcards aren't so hot in modern 'hacker' community...
Also see a company called SIMless.
There's a lot of market momentum around SIM cards and it keeps a telco's offering really sticky. It is more effort for people to swap hardware instead of software.
Each SIM has a unique ID that is used to track/bill/identify your phone.
It contains what is known as a remote provisioning SIM:https://www.gsmaintelligence.com/research/?file=81d866ecda8b...
So clearly the only thing stopping the industry is the telcos who would very much like to make it as difficult as humanely possible for you to switch carriers. Especially in the US where there is a lot of competition and hence high churn.
I, and many others were surprised at that deal because, up to that point, ppl had essentially carrier-owned phones and long contracts that locked subs (subscribers) to their network. This deal would allow ppl to install any software from the app store without telco approval.
Telcos see the SIM card as their last beachhead. They are looking for at least 2 revue streams from this NFC SE (Secure Element) real estate:
1 Identity verification - Telcos rent "space" on the SE on which you store health cards, passports, driver's licenses, etc.2 Cards - Telcos rent "space" on which you store credit, gift, debit cards.
Carriers and Issuers (the bank that issues your credit card) are now fighting over that potential revenue stream (spoiler: it's tiny) while Apple has gone and deployed it with Apple Watch et al and is making a cut of the transaction fee. In contrast, the transaction fee is a huge stream however one can imagine the fun of negotiating a contract between all the parties involved (likely all multibillion dollar companies with teams of lawyers).
Apple had tried to push a software SIM (containing a SE) but the carriers, from their POV, rightly and vigorously fought and will continue to fight against that. Google is also trying with Android Wallet/Pay/...
I suspect Apple will eventually use the same "wedge" approach with one of the US carriers and the others will fall in line.
 https://www.engadget.com/2010/05/10/confirmed-apple-and-atan... https://en.wikipedia.org/wiki/Near_field_communication#Appli... http://www.thememo.com/2015/07/30/five-years-on-apples-battl...
1) One SIMs are a bit harder to tamper with than the OS of a phone which I am assuming would be the alternative to a SIM card i.e storing the same information on NAND flash accessible to the OS. SIMs have some threshold(it used to be 3) of unsuccessful attempts to read the card. A lock is activated and can only be unlocked entering the unlock code.
2) Carriers can talk directly to the SIM - A "SIM" is basically a Java applet that runs on UICC(Universal Integrated Circuit Card - the smart card itself.) I think a lot of people don't know that SIMs run Java - well Java Card. This mean that they can remotely lock a SIM card to prevent it from further accessing their network. If someone stole my phone or even just my SIM card I could call my carrier and they could lock the SIM remotely and consequently unlock it. They can also use the SIM to push new PRLs - preferred roaming lists. This is generally called OTA or over the air provisioning.
3)Convenience, if I use a pre-paid services with an MVNO or travel to another country and buy a pre-paid SIM while on holiday, I don't need to do anything else except insert the new SIM and power on the phone. What would the non-SIM card alternative look like? Its hard to imagine it being easier.
4)Carrier-locked phones, such as what you get when you are under contract to a carrier. The way phones are locked is by having the phone only accept SIMs from the carriers network. An unlocked phone will accept a SIM from any carriers network.
If anyone is interested this DEFCON presentation - "The Secret Life of SIM Cards", is pretty interesting:
1) Security: telco laws these days often require registration of accounts to your personal ID (i.e. no anonymous usage any more). How would a pure soft-SIM be able to fetch the data from the network?
2) Flexibility: SIM is pretty much standardized. This means a newcomer MVNO just has to issue SIM cards and the customer can use any kind of phone (or other interface, like a modem, a 2G/3G shield, ...) to use the network. And if a device breaks, then the SIM card usually stays intact and can be placed in a new device. Not sure how to securely do this with a soft-SIM.
Perhaps using a community messaging tool with built-in end-to-end Signal encryption will be the way to secure lines of communication in the near future.
Because we better understand the threat vectors that are imposed on the company from sloppy IT practices and as such are more willing to take security measures to prevent these things from happening.
We are also, at the same time, too stupid to realize that not everyone want's 5 applications just to encrypt their mail with a PGP key. When we make it so that by logging into a service with a password your browser can derive a private key and public key and use that to sign and send email we will have larger adoption. This will only be the case if it automatic.
Sure it's less secure but less secure is better then unused.
If you were given the choice, which route would you take?
When you're done there, go to some other industry. Medical devices, alternative energy, aerospace, porn. Live in different regions, different countries.
That's the beauty of software. If you're open to it, you can learn a lot about different parts of the economy.
Or did you specialize in whatever your startup does when you were in school?
Hedge fund pros and cons:* higher pay* more volatile pay* what is your long-term career path at the hedge fund?
Startup pros and cons:* probably a nicer work environment than a hedge fund* you feel disenfranchised
The simpler argument would be to simply take the job that pays the most. I think there are very few exceptions to that rule.
To be candid, I have no idea what it feels like to be blind and have never paid much attention to accessibility other than reading a tutorial or two and making sure I use alt tags on my images. The main reason for that is that I'm lazy and based on my experience, most developers are in the same boat.
Now, if there was a service which would spin up a remote VM session inside my browser (a bit like BrowserStack or SauceLabs do) with all screen reader software setup and no screen (only audio), it'd make it a lot easier for me to experience my software as a blind user. There should probably also be a walkthrough to help new users use the screen reader and help them get started. If you're lucky, you could turn this into a business and it could indirectly help you achieve your goal of making better software for the blind by exposing more of us to your issues.
Anyways, I know you probably have more pressing issues to solve and I hope I didn't come across as arrogant, just throwing the idea out there.
First off, you're 100% correct when you talk about how devtools are inaccessible. This problem is an historic one, stretching back as far as early versions of Visual Studio, or other early IDEs on Windows. Basically, the people who build the tools make the tools for themselves, and not being blind, make inaccessible by default tooling.
I do most of my work on Windows, using the NVDA screen reader, and consequently I have the ability to write or use add-ons for my screen reader to help with a variety of tasks. This being said, this always means more work for equal access, if access is even possible.
I'm interested in any sort of collaborative effort you might propose. Targeting accessibility issues in common devtools does seem to me like a reasonable place to start attacking this problem.I had read a few months ago that Marco Zehe, a blind developer at Mozilla, was pushing some work forward for the Firefox devtools, but haven't heard much about that recently, and I think they might be distracted trying to get a11y and e10s working together.
Basically, I'm interested in helping in any way you might suggest, and from the thread here it looks like there are some enthusiastic people at least willing to listen.My email is in my profile, let's make something awesome.
If you have an interest in Braille and have software development skills there might be something to do there. The UI program that drives our prototypes is open source and available on GitHub. https://github.com/Bristol-Braille/canute-ui
We have plans to open source the hardware as well.
If you want to add support at a lower level, our current USB protocol is outlined in this repository. It is a a dev-kit I knocked together to allow some Google engineers to write drivers for BRLTTY (and thus for ChromeOS).https://github.com/Bristol-Braille/canute-dev-kit
I would be very interested to learn how visually impaired developers such as yourself and others got started, and for any suggestions for how I can make my student's experience more positive.
For any developer, it's important to practice your craft, and when looking for a job, it's valuable to have a portfolio of work you've contributed to. So you can get multiple benefit by helping create a tool which will help you be more productive, and also show your skill.
Clearly, this project should be something that you're passionate about, but one project I've had on my when-I-have-time list is below - I would be happy to work with others who are interested (@blinddev @ctoth @jareds).
After your text editor / IDE, one of the next most important tools is a tool for tracking bugs/tasks. Unfortunately, many of the common ones, like VSTS, Jira, and Trello, are either not accessible, or at least not productively usable with a screen reader.
Over my career I've developed my own scripts for working with such systems, but it would be good to have something that others can also benefit from. I should probably put my initial bits on Github, but time is currently consumed by other projects. Email me if this interests you. Also happy to mentor on general career challenges around being a blind software engineer.
I would love to learn more about how you would like development tools to support you in your work.
I know as an industry we have a long way to go, and I would love to work with you to get us there.
My email is in my profile, and I will also reach out to Talitha. Hoping we get a chance to chat.
The world can certainly use more open source accessibility standards, protocols and tools.
For example, could you read this article and then give an overview of the main issues of web site performance? Could you then come up with one recommendation for a performance improvement in a code base you're familiar with? Could you justify in practical terms why your recommendation was the best bang for the buck, vs. other other possible improvements?https://medium.baqend.com/building-a-shop-with-sub-second-pa...
Now, how do you judge yourself?
1). Have the conversation with a dev whose skills and opinion you trust.
2). Record your answers on audio, and ask someone on HN to give you fair and constructive feedback. Many here would be glad to do this (feel free to ping me as well).
I'm asking because though I'd love to help I know I won't be able to commit to it full-time. So it would be great to be able to follow up and get an idea of where the project is going, what areas it is tackling, etc.
Also, maybe a "Show HN" could help spreading to a wider audience whatever you set up.
As a partially sighted developer, I generally use a screen reader for web browsing and email, but read the screen visually for my actual programming work. So I don't have significant first-hand experience with the accessibility (or lack thereof) of development tools. But some of my totally blind programmer friends have expressed some frustration with the accessibility of some tools, especially web applications. They generally use Windows with NVDA (http://www.nvaccess.org/). At least with NVDA, you can write add-ons (in Python) to help with specific applications and tasks.
All of the complaining I do about JIRA aside, I do find it to be a reasonably usable tool for what I need (page load times annoy me far more than accessibility issues). There are some tasks that I cannot complete (reordering backlog items), but I collaborate with team members, which can help us all to have better context about the rationale for changes.
Gitlab I find quite poorly accessible, but thankfully it is just a UI on top of an otherwise excellent tool (git). I find that the same trick that works with evaluating GitHub PRs works with Gitlab MRs. If you putt .diff after the URL to a PR or MR, you can see the raw output of the diff of the branches being compared.
Debuggers are definitely my biggest current pain point. I tend to use MacGDBp for PHP. This is quite reasonably accessible. It allows me to step through code, to see the value of all variables, and to understand the file / line number being executed. It isn't possible to see the exact line of code, so I need to have my code editor open and to track along.
I'd be happy to learn more about any projects you take on to improve web application development tools and practices for persons with disabilities. Feel free to reach out on LinkedIn if you would like to talk.
I am not blind, but I designed it to operate without looking at screen.If the app will take off, I'm considering into forking/pivoting into RSS reader that also is not using screen. App is already accepted in the app store, I'm sorting out launch details.
Please accept my deepest apologies for the shitty job we (the developers ) are doing at providing interfaces for vision impaired.
Probably when we're all old, we'll have vision problems of our own :).
My sight issues are not comparable to being blind, but as an example, I've asked Pandora for simple accessibility improvements for years and they never take action. Have even offered to write (less than a page) the code for them.
Would they (and software tool vendors) feel the same way if this were highlighted on a high traffic web page?
I'm mostly responding to encourage you to keep at it, and if you haven't tried Mac OS, maybe give it a whirl. Apple is pretty good about accessibility and their accessibility team is very good at accepting and acting upon feedback.
You will need to have the package texlive-fonts-extra installed.
You could want also to contact with the maintainers of brltty, cl-brlapi, ebook-speaker or brailleutils
A super-rudimentary basic version will be something I finish when I've the time in the coming months. I was hoping to get some interested from the blind community and get ideas for further OSS work involving that general space (editors).
I would be happy to help.
Another interesting idea: try using braille screen for ourselves, so we as dev's will be able to work at complete darkness without any light :)
Send me an email; my address is in my profile.
I'm a seeing student with an upcoming six week block of time to do a out of school project. I have previous experience developing accessable software and would love to work with you. If you're interested, shoot me an email at firstname.lastname@example.org
 http://github.com/jscheid/kite http://emacspeak.sourceforge.net/
Do let me know how to contact you.
See our first demo: https://blockly-demo.appspot.com/static/demos/accessible/ind...
Right now, it is effectively a different renderer for the same abstract syntax tree. We'd love to see people evaluate the direction we are currently going, and possibly apply the same accessible navigation to our existing render.
In terms of dev tools, Blockly blocks are usually constructed using Blockly (https://blockly-demo.appspot.com/static/demos/blockfactory/i...). That said, no one has considered what it would take to make our dev tools blind accessible. The fundamentals are there.
Granted, Blockly programming is far from being as powerful as other languages. It is aimed at novice programmers, whether for casual use or to teach the fundamentals of computational thinking. You can write an app in Blockly (http://appinventor.mit.edu/).
If anyone is interested, reach out to us: https://groups.google.com/forum/#!forum/blockly
I'm not sure that using tools that try to provide a good visual experience is the right approach. Have you tried writing scrapers that provide an optimized textual representation?
If you do contact him please blame me so he can shout at me, not you, if I made the wrong guess here.
There is also a fair amount of research out there on the topic (see Richard Ladner at UW).
Feel free to send me an email if you get anything going!
You might want to read this: TOOLS of Blind Programmer https://www.parhamdoustdar.com/2016/04/03/tools-of-blind-pro...
Hope this can help.
Clients want sites that implement current SEO best practices. What sort of best practices are those? A Yoast SEO plugin, maybe. Developers often mention the URL structure of the site itself, say it's "clean." This might be appreciated by future admins of the site, but it's unrelated to the goal of making pages that can be scraped.
It surprises me developers and SEOs overlook the difficulty of scraping the web. Keyword density does very little to help a page that cannot easily be serialized to a database. It's true that machines have come a long way. Google sees text loaded into the DOM dynamically, for example. But its algorithms remain deeply skeptical of ( or maybe just confused by ) pages I've made that make a lot of hot changes to the DOM.
And why wouldn't it be? I ask myself how would I cope with a succession of before and after states, identify conflicts, and merge all those objects into a cached image. Badly, sure. At this point, summarizing what the page "says" is no longer a deterministic function of the static page. Perhaps machine learning algorithms of the future will more and more resemble riveting court dramas where various mappings are proposed, compared to various procedural precedents, and rejected until a verdict is reached.
I wasn't very good at SEO. I found web scrapers completely fascinating, I spent way more time reading white papers on Google Research and trying to build a homemade facsimile of Google. Come to think of it, I did very little actual work. But I took a lot of useful lessons that have served me well as a developer.
I realized, for example, how many great websites there are that are utterly inaccessible to the visually impaired. With very few exceptions, these sites inhabit this sort of "gray web," unobservable to the vast majority of the world's eyeballs. The difficulty of crawling the web isn't simply related to the difficulty of summarizing a rich, interactive, content experience. They are instances of the same problem. If I really wanted to know how my site's SEO stacks up against the competition, I would not hire an SEO to tell me, I would hire a blind person.
Puns aside, Who on earth would make a blind person work on UI? I think it's better that you parted with them, even tho I'm sorry you have trouble finding a good job.
Best of luck.
FYI, I sent courtesy invitations to nine people who said in this discussion "shoot me an email." One email address provided here was invalid. One or two other people who said "email in profile" did not have an email in their profile. If you want an invitation, contact me (talithamichele at gmail etc).
Firstly, just offhand, the following stacks should be fully accessible with current tools: Node.js, Rust, Python, truly cross-platform C++, Java, Scala, Ruby, PHP, Haskell, and Erlang. If you use any of these, you can work completely from a terminal, access servers via SSH through Cygwin or Bash for Windows, and do editing via an SFTP client (WinSCP works reasonably, at least with NVDA). Notepad++ also makes a perfectly adequate editor, again with NVDA; I'm not sure about jaws if you're using that.
GitHub has a command line tool called hub that can be used to do some things, and is otherwise pretty accessible. Not perfect, but certainly usable enough that NVDA (one of the most popular screen readers) uses it now. Many other project management systems have command line tools as well. If you write alternatives to project management tools, you will have to convince your employer to use them. Replacing these makes you less employable. You need to work to make them accessible, perhaps by getting a job on an accessibility team.
The stacks you are locked out of--primarily anything Microsoft and anything iOS--can only be fixed with collaboration from the companies backing them. Writing a wrapper or alternative to msbuild that can let you do a UWP app without using the GUI is not feasible. I have looked into this. Doing this for Xcode is even worse, because Xcode is a complicated monster that doesn't bother to document anything--Microsoft doesn't document much, but at least gives you some.
I imagine this is not what you want to hear, but separating all the blind people into the corner and requiring custom tools for everything will just put us all out of work. if you're successful, none of the mainstream stuff that cares even a little right now will continue to do so, and you'll end up working on blind-person-only teams at blind-person-only companies.
0: My most notable Rust PR is this monster: https://github.com/rust-lang/rust/pull/361511: https://github.com/camlorn/libaudioverse
I didn't realize this was just a discussion thread here, and I opened two tabs like I usually do - one for the main link and one for the HN thread. In this case I got two tabs with the same HN thread. :)
The problem with asking this question here is two-fold. First, you are potentially admitting that you think you may be violating that patent. Just because a site is not working, does not mean they are not a patent troll.
More importantly, you will get a mix of answers, if any. Patent law is complicated and, in most cases, not a simple yes you are violating or no you are not violating answer. The responses you get by asking that question in a public forum will fall along that line. Some people may think you are and others will not. In the end, you still don't have the answer to your question and are most likely more confused than when you started :)
Finally, just looking at your site, not sure if you are aware but I know of several patents that are being utilized for similar technology. Check out a site: http://zugara.com/virtual-dressing-room-technology and on their site they list the patents they are using.
This is the exact reason why we built Unpatent (https://unpatent.co) so feel free to reach me at luis@(our domain name) and we'll help you out!
The Quiet Pro is barely a hair louder than the average membrane keyboard. I work in an open office and I wouldn't dream of using any other mechanical keyboard at work.
A few weeks ago, I spilled tea on it. While it was drying, I switched back to my Logitech K310 washable keyboard. My enjoyment and productivity on the K310 are exactly the same, and I won't be switching back to the mechanical keyboard because it's not waterproof.
Also, I'm not sure how good it is for your health to have WHITE backlight. A warmer color would probably be better.
If you are going to use it in a office, then go with a quieter switch, such as the Cherry MX Brown.
I love this.
Good marketing video. https://www.youtube.com/watch?v=kC93-h3nprs
1) You work on an open source project and an altruistic company hires you to keep working on it. This is ideal, and I've only ever seen it once (Sendmail hired a couple of core contributors to keep making Sendmail awesome back in the 90s).
2) You work on an open source project, people see the work because they use the project, and then offer you a job to keep working on the project, but slowly over time you are working less on things that are great for the community and more on things that are great for your company. I've seen this a lot.
3) You get hired by a company that uses a big project, and they ask you to start making modifications that are useful for the company. It turns out what you did was useful for everyone so you contribute it back. Sometimes it turns out to be a huge win and so you keep working on it. I saw this with Cassandra and some of the folks at Netflix.
4) You create a cool project and your company lets you open source it. It becomes well known and then other companies want to hire you for either 1, 2 or 3. I saw this a couple times were people left Netflix to go to Facebook or Google to continue work on an OSS project.
If you work on Chromium or Firefox, you'll pretty much be limited to Google or the Mozilla foundation (with some exceptions). So if you want to do it to learn some great code but don't have a particular project that you love, I'd suggest one of the more infrastructure projects that are widely deployed if you want to increase potential job prospects.
In summary: There are lots of ways to get paid to write OSS, but you may not like them all.
My major source of income is my "Varnish Moral License" (see: http://phk.freebsd.dk/VML/index.html)
It is not particularly easy to shake money loose, but I'm making a living and I'm trying to explain to the world that free software is not the same as gratis software.
(See for instance: http://queue.acm.org/detail.cfm?id=2636165)
As others have pointed out, the browsers are all backed by actual organizations with employees, so that will probably be a tough row to hoe, unless the end goal is to get employed by one of them.
And to answer the inevitable question: many of my paid features are also available as 3rd party OSS plugins. Many companies prefer to pay for the commercial version so they know the features will all work well together and be supported years from now.
Another person worth looking at would be Eric Holscher, who's Twitter feed frequently has interesting insights into running an open source project as your full-time job.
The best bet if you want to do open source full-time would be to work at a company like GitLab or Sentry, but that does restrict the exact kinds of open source work you can do (at least during working hours).
: https://github.com/nayafia/lemonade-stand: http://www.fordfoundation.org/library/reports-and-studies/ro...: https://changelog.com/rfc: https://twitter.com/ericholscher/status/752572876138565632: https://about.gitlab.com/: https://sentry.io/
Once payroll rolls out contributors set their own compensation.
Some more information on that can be found here: https://gratipay.com/about/features/payroll
Previously Gratipay was Gittip, and worked much like Patreon - essentially a donation or ~tip~ system.
There's still some work to be done, but I've been following this project for awhile. I've been working full time now on other stuff, but I keep up with their updates, and Chad (founder) is a great dude.
Incidentally, previous experience with the specific codebase isn't necessarily a requirement to get a job working on a project: if you have general experience in the field and can work with an open source community then these both transfer over (this is how I got into working on QEMU). Learning a new codebase is something that you typically have to do when you start a new job in the closed source world, after all...
I'm a software engineer at Google, where I've contributed to Google Servlet Engine, Omaha (https://github.com/google/omaha), Firefox, Chromium, and Android, among other open-source projects.
Some of these are closed-source projects that were later open-sourced, some are developed in the open, and some are run as a hybrid between the two. I also develop random crap on the weekends, and Google gives us wide latitude to open-source that work if we want.
I recognize you're asking whether one can start with open-source contributions and eventually receive compensation for it. I'm answering that in my case I am compensated for a job that happens to involve lots of open-source contributions, which is the same end result but starting from a different place.
So I'm here to tell that friends or family aren't always the worst possible clients. If you both know what you're talking about, and are well organized, and define precisely what's the price for each task, it can be a great experience.
today the project has 900 stars on Github and a lengthy Smashing Magazine page :)
More info here:https://www.smashingmagazine.com/2016/07/how-i-ended-up-with...
We pay our developers to help us build it and we are currently hiring an Android dev. http://ie.indeed.com/job/android-developer-passion-human-rig...
Code is here: https://github.com/securityfirst
Note that this doesn't have to involve doing a PhD or actually being an academic - it's more a providing the tools that enable academics to do successful research kind of thing.
- I grew up in a family without a lot of money, by using open-source software growing up I got to learn a lot of different aspects of digital production, sofware development, and try software I never would have had the opportunity to try if it hadn't been open source. This was incredibly formative in shaping my skill set today, so I have a lot of past open-source contributers to thank for where I find myself today
- I believe businesses have a responsibility to the community in which they operate and where their employees live. This is corporate stewardship, for a big business maaybe they invest in a local school, or sponsor kids sports teams or summer camp. I'm a freelancer, so I wont be sponsoring any sports teams, but I feel its important for my 1-man business to give back in a 1-man-sized way!
So with those two things in mind, a desire to give back to open source, and a desire to help the community I come from - I have tried to find challenging new work that pushes the limits of current technology. I stretches me as a learner & worker, it provides a solution for a problem that meets the clients needs, and if I can find a way to give the solution I came up with back to the community, then others can save time and money by using my work as a springboard for their own solutions.
I write and release lots of use cases and examples demonstrating techniques and solutions, and pour a lot of time, and even some of my own money into getting them out there!
If your aim was to help a project like the Firefox project, and you wanted to be paid for your time - I would try to find a client who has an ee case not currently supported by Firefox, having them pay you to solve their problem, and also arrange that your solution can be sent back to Firefox and included in their codebase. Its a win/win/win for you, the client, and Firefox, plus a bonus win for all Firefox users at the same time!
Learn/money idea to what you want is to get a job where open source is welcome, cherished and used. Internships are good to try it out. HIIT in Finland was such place and I interned there, and the result is here:https://github.com/wkoszek/freebsd_netfpga So I've got $$$ for stay + food + cinema for hacking project which I knew we'd publish and I learned a bunch.
If you're not for a rich country, Google Code In and Google Summer of Code be an option. You get a $5000 stipend for spending your summer at home hacking code, you get a decent mentor from a project you're interested in and you get experience.
Another model is to reach out to projects which are backed by a legal body. For example the FreeBSD Foundation helps and support the FreeBSD Project, and they have sponsored projects. If you're good in FreeBSD and have an idea, I feel there'd be some $$$ if you can deliver something useful. FreeBSD has feature idea pages and if you see a fit, you could just ping people and start collaborating.
Last, and I think the hardest, is to start hacking good code in a product you see is (1) open-source (2) backed by a company. I don't know how many hiring managers are techies merging pull requests etc., but even through individual engineers you can get a reference. After 10th pull request accepted by a guy who reviewed your stuff and with whom you've worked, I feel like it's easier to shoot "Are you hiring? I NEED THE MONEYZ!" email.
And of course, if you're starting a new project, there's the Kickstarter model - followed by, for eg., Neovim, Chocolatey, etc.
 https://www.bountysource.com/ http://alternativeto.net/software/bountysource/
I work in Open Source and there are plenty of companies that build their business around a product and hire at market rates, normally they have a SaaS model of operation, but you'll have to set your sights a little lower than Chrome or Firefox. These companies include Ghost, Mongo, Elastic, Basho, Cockroach Labs, Automattic (Wordpress), Silverstripe, and countless more.
Another way to do it is to do postgraduate work at a university and get a grant, I know people who work on the Rust compiler in this capacity.
I'd highly recommend it, although I believe enrollment in a university is required for eligibility.
There are usually 3 kinds of paid contributors we see:1. Companies scratching their own itch while we maintain it
2. People I hire to work on the project
3. Phd students technically on a stipend doing their research with us (we do AI)
Another possibility is a 3rd party company paying someone to add a pull request to an open source project whether that be us or others.
If I need something fixed or added to a FOSS project for $WORK, that's work related and it's perfectly reasonable to do so.
Now getting someone else to pay you is a much bigger stretch. Outside of a couple people who work for really big companies that market commercial versions (or support packages) for FOSS projects, I don't know of anyone that gets paid to work on FOSS.
I had met some people from the company a couple of times and wrote something they wanted adapted to work with their products but didn't want to invest in it.
A few thousand to get me to do something I was going to do anyway at some point was a good way for them to get something that they wouldn't monetise directly.
Not sure how to get a gig like that though :)
I don't know a lot about the frontend OSS world, but I know that if you pick a project that has a lot of money being thrown around (in large deployments, for example) then you'll find that it's easier to get some of it to land in your pocket. Niche projects are difficult to get paid for, but can be good places to learn; smaller projects may be happy to have some help and will lend more guidance when you ask questions. But, then again, some big projects have people specifically tasked with bringing new developers up to speed and "community management", so that may even out that difference.
It will never hurt you to have OSS contributions on your resume. It's gotten me jobs, and has allowed me to round up good paying contract work when I've needed it (even in unrelated fields; I've recently done some Ruby work, even though I've never had a real project in Ruby). And, as someone who has hired people, I can say I've only ever hired people who had OSS work I could see. Sometimes unrelated to what I was hiring for, sometimes they were already working on what I was hiring for and I just wanted them to be able to spend more time on it and get them on board with the company road map.
All that said, it's not the easiest way to make a living in software. Getting a real job is probably the easiest way, and if you're lucky you'll get to work on OSS stuff to one degree or another. I've worked on tons of stuff that I never got paid for, and don't expect to ever get paid for. And, if you aren't really directing your efforts toward making something pay, you're unlikely to find that it'll pay.
OSS contribution does not, in the general case, lead to getting paid. But, it can lead there if you want it to.
Basically the idea is that the code is open and free, but if someone uses it a lot to make money they pay you a licensing fee.
file "entryother.S" is asm that executes on AP's and "bootasm.S" executes on the BSP... both after the BIOS
maybe that's what your looking for?
1) Powerhouse specs (core i7, 16gb ram, 512gb SSD, nvidia GeForce) for running pretty much anything
2) Convertable to tablet for casual browsing, watching videos and drawing
3) Super accurate pen and touch support, pen acts like a mouse so can be used for OS level interactions not just specific apps, even hover works
4) Pen mounts to screen magnetically
5) Can be used like a traditional laptop on your lap
6) Beautiful 3000x2000 pixel display, higher DPI than retina with a 3:2 aspect ratio
7) Windows 10 with all the patches is actually a decent OS and supports all form factors, touch etc.
It's really nice to be able to do creative work, everyday work and gaming all on the same system. Currently playing Overwatch with no issues!
That said, I hear you. I wanted a 32gb model with crazy good battery life also, but to be honest, Windows laptops are kind of all shit right now. I'm in the exact same boat as you. I hate the new MBPs and need a new laptop soon, BUT I'm still landing on the old style MBP as the way forward every time I look through the available options.
Probably not much help, but that's my 2 cents.
e: that said I am going to keep refreshing this thread and hope someone mentions something I haven't looked at yet.
But it does learn from its mistake, the new Surface line-up is epic.http://mashable.com/2016/10/27/microsoft-better-apple
I have been using a Windows laptop for over 5 years (Yeah a Lenovo!) and have went thru the whole upgrade from Windows 7 --> Windows 10.1 Anniversary update (for free), and to much shame of mine, my b!@#ch of a laptop still doesn't cry considering a boot up time of 6 seconds!
Yet I needed a dedicated Unix environment and although Bash is available natively now on Windows, it's not going to be stable soon enough for me (6 months from now maybe, Creators Update is coming in Jan' 2017). So, a week ago I did buy the MBP retina 13" Early 2015, and trust me I am not disappointed, after last night's #AppleEvent.
I might be biased but coming down to your query:> Are Lenovos worth considering post-superfish-gate?
"based on my personal experience".
If you want to spend a similar amount of money, get the Asus UX390UA (Zenbook 3).1) It's lighter2) It's got better components in every single aspect -> CPU, GPU, SSD size, Screen, keyboard, etc., etc....3) It's actually cheaperSTILL
If you want to spend less, but now around the same performance of a MBP, maybe get the Asus UX330. It's basically a toned-down UX390, but still awesome.
If you want a cheaper STILL, consider a Clevo reseller like PCSpecialist (UK), Scan (Everywhere?), Sager (US), XMG (Europe). They are the ultimate in performance per cost, it's just that they tend to not be the most asthetically pleasing.
Dell XPS 13 is also a very good alternative, I've heard.
I plan to get another MBair or maybe the new MBpro without the touch bar. I might go for the touch bar but right now it just doesn't interest me but I'll go in and try one out, read reviews and see how it's integrated with software I use.
I would still stick with a macbook.
Do you really need to be coding on the bus/train/plane or in hotels? When you go to a meeting, do you really need to bring your entire development setup with you?
When I go into a client's office for a meeting I usually only need to take notes and do presentations. So I get a cheap $500 laptop for that. If I need anything at all from my home workstation, I just remote into it. Actually, I did this even before I was working for myself - I'd just remote back into my workstation at my desk.
Is it just that you don't want to deal with 2 machines? Are you just doing it because that's what everybody else is doing?
I have heavily relied on Microsoft Remote desktop in past and my experience has been smoother for task like running and computing in MatLab or Mathematica.
I have also been thinking of getting Razor blade pro laptop if this setup does not work out. They have 2 TB PCie SSD with RAID 0. That's insane in less than one inch thick laptop.
And they have an entire article devoted to the topic of laptops. 
Run Linux beautifully, if you care about that.
- Thinkpad x250 (x260 has PWM issues)
- 4th Gen Thinkpad x1 Carbon (FHD model to avoid screen lottery)
- Thinkpad x1 Carbon Yoga (OLED)
- Refurbished 2015 Macbook Pro
A fully upgraded MacBook Air is still the best. (i7, 500GB HD, 16GB RAM) I got several of them.
Lenovo is too heavy to carry around. Even a MBP is too heavy and bulky for me.The Elitebook has no 500GB HD available and also only 16GB RAM.
on a serious note, look at Aorus X5, I like the RGB keyboard. you can get it to colour the keys based on context. could be a nice alternative to the overpriced touchscreen of the new macbooks.
They also have a 17" and a 12.5" laptop, but you're probably looking for something in between 13 and 15.
I'm in the same market. I have a late 2013 Macbook Pro and there is ZERO chance I'm buying a modern 15" MBP. The Touch Bar is offensive to the point that I'll put up with Windows instead.
- Asus ZenBook Pro UX501VW (15.6")
- MacBook Pro 2016 (15.6")
- Dell XPS (13" or 15")
- Lenovo X1 Carbon
If you don't like the MacBook Pro (or think it's too expensive), then I'd go with the ZenBook Pro.
Comes pre-installed with either Windows or Ubuntu 14.04 LTS. Also comes with Thunderbolt over USB type-c so you can charge and hook up your peripherals over 1 cable.
Not quite as thin and light as a Macbook Pro, but not far off: 17.5mm and 4 lbs.
The build quality definitely isn't as good as Apples. I had to return my first T460s due to severe light-bleed issues. The new one is fine, though the TrackPoint isn't as good as it was in previous generations. The TrackPad also is not as good as Apples, though I try to keep a keyboard-only workflow so it's not that much of an issue (till it is)
(I got a lemur)
The actual build quality isn't great, but it's functional with no frills which is exactly what I wanted.
Edit: removed "inb4 downvotes".
Early this year Apple acquired Turi for $200 million. It was founded by Carlos Guestrin, one of the professors who is teaching the course.
We (Class Central) are also working on a six part Wirecutter style guide to learning Data Science online. Here is part 1:https://www.class-central.com/report/best-programming-course...
Feedback would be appreciated (on the format as well as content)!
If you want to just try them out, I'd honestly recommend just going through the scikit-learn documentation. Almost all of the algorithms provide an example, and the API is pretty consistent across different ML algorithms, to the extent that it can be.
People learn differently, some people prefer to get into the math right away, others will never be interested in it. I'm interested, but I tend to be more motivated when I've used the algorithms, start to learn about how and why they perform well or poorly under various circumstances, and then dig into the mathematics specifically to find out why.
Also, I'm not going to be creating new ML algorithms. So, you know, that also influences my level of interest. I do care about the mathematics involved, because I do want to genuinely understand why some outputs are available for random forests but not naive bases or logistic regression, why performance and/or accuracy is great in some circumstances and not others, and I don't want to have to rely on too much hand waving. But if you want to actually develop and research novel ML algorithms, you'd need to get considerably deeper into the math.
Ask HN: How to get started with machine learning?
For keeping up with the latest research, once you know what you are doing, reading papers on Arxiv daily/weekly is a great way to keep up, nearly everything gets published there
It is a remarkably high signal to noise community.
Excellent book for starting with NN and DL.
I've been using a Retina MacBook Pro 13" (early 15) and 15" (mid 15) and just picked up the xps 13 9350 with iris pro.
There are definitely some quality control issues but once you get a working model with no faults (I had one that wouldn't reboot and had terrible coil whine, one that had loose trackpad and yellow tint on screen but this could also be because of Amazon's shitty packaging where the laptop was in a box with only some brown paper crumpled in) - atleast they took them back no questions asked. I'm amazed how far windows laptops have come along.
The only real downsides are that it power throttles (and thermal too, but I placed my own aftermarket thermal paste and it doesn't cross 66 C on full load now) due to the iris GPU itself consuming 18W at it's rated turbo boost with the SoC's TDP being 15W (long turbo) and 25W (short turbo). Perhaps go with the i5 model that has the HD 520 or the new 9360 that has kabylake with better thermal and power consumption (HD 620 is roughly similar to HD 540 but won't throttle). You can also use Intel's XTU to undervolt and better battery life and throttling if you're going to use windows.
Linux runs flawlessly, infact so does OS X if you can replace the wifi card. AMA
So for ~$1900 I have something that blows the MacBook Pro out of the water.
- 4k touchscreen
- i7 Skylake processor w/ identical stats to that on the $2400 15" macbook pro
- 16 GB RAM
- 128 GB SSD + 1 TB HDD (I replaced the HDD with a 500 GB SSD from Amazon)
- NVIDIA GTX 960m w/ 4 GB GDDR5 RAM
It's sturdily made, I take it everywhere. The only thing I miss from my mac is the trackpad. You can't beat mac trackpads. However, the trackpad on the Inspiron is great, much better than many of the others I've tried. When you take into account it has better graphics acceleration than the $2800 macbook pro, you find that dollar for dollar, it's one of the best value laptops out there. (Seriously, compare it to even Dell's XPS 15, you'd have to pay ~$1650 for an XPS 15 to get comparable specs to the $1300 Inspiron 7559. The Inspiron even has double the graphics card RAM of the $2550 XPS 15!)
Trackpad much worse than on a Mac
Bad fan control means it was sometimes noisy in near-idle contitions (though in idle it was very silent)
there were some flicker issues with the GPU (might have been resolved though)
one key was bouncy, meaning it sometimes triggered twice
it woke up from sleep randomly, sometimes while in my bag, often completely emptying the battery
In the beginning it also crashed very often, however this was resolved with an update.
So all in all the quality wasn't on the level of a Mac.
And I wouldn't even start speaking about the OS.If you're used to macOS, it's still such a day and night difference.
Connecting a normal low dpi display to the 9550 with HIDPI display lead to so many annoyances with Windows and all the programs that won't support this for the years to come. I'd barely consider it useful. Although the display itself was quite nice.
* My XPS has a really awful touchpad. When I first got it, it was definitely my main reservation. I tried a 2014 model and noted that it wasn't much improved.
* The battery life is much, much worse on the XPS, which is probably the main reason why I find myself reaching for the mac. I've kept Ubuntu 12.04 on it, so Linux power management has likely gotten better but there's still no comparison. * other than that, I've loved my XPS. It's super light, has a brilliant keyboard, excellent specs and still works well after three years.
Initially I though I would never use the touch-screen, but it is actually quite useful when reading things (scrolling) or quickly clicking basic things when not really sitting behind the keyboard on a desk. Same for the light in the keyboard, very useful when working at night and on airplanes etc. The screen in general is really really good, some colleagues have the 1920x1080 screen, I would pick the 3200x1800 screen again next time since it's much nicer to read from and allows you to use smaller fonts (= more code on one screen)
Linux support is generally much better than other relatively new notebooks I've had, but still sometimes things break. The Developer Edition is released a bit later than the Windows models, probably to stabilize Linux support. I've only used it with Ubuntu, but I see others use several other distros which seems to work without much issues.
Here are my pros and cons:
1. The hardware is great; the developer edition favors more Linux-compatible hardware (obviously), and for us, it didn't require very much setup. Usually the default configuration will be enough. The touchpad, like the MacBook, has a glass surface and feels excellent.
2. Like the MacBook, it's very light. The screen looks great, and honestly on Linux I prefer 1080p.
3. Dell has a very reasonable warranty, and is very quick to respond. Example: You can install whatever Linux distribution you like, replace the SSD (so long as you don't ruin anything while you're there, of course).
1. It's fragile. Unlike the Macbook, you have to be at least (more) careful with this thing. We ended up breaking the screen without much effort; I wager it was the fact that it was in a backpack that got dropped somewhat aggressively.
That being said, we also bought the $60 accident protection, and Dell sent out a technician from a local repair shop to fix it for us within that week. If the technician can't fix it, they will over-night you a shipping box and a FedEx label to send your laptop back in.
Just be careful with it; treat it like the $1000+ machine that it is.
2. No replacing the RAM. It's soldered onto the board. That's not a problem for me because I barely push ~4GB.
Conclusion: I use a MacBook now; my XPS 13 is actually coming in tomorrow and I'm very excited. I think it's a great machine and a great MacBook replacement, and has excellent Linux compatibility. Dell's customer support is great, just be careful with it; it's not an aluminum body or several layers of glass in front of the screen. Make sure to buy the one with the right amount of RAM so you don't regret it later. If you're worried about storage, there's a $150 500GB M.2 SSD on Amazon, buy the lowest storage version and upgrade it. Get the protection plan. It's cheap compared to the cost of buying a new device.
If you don't mind something heavy, check out the new Thinkpad P50 or P70. They have actual desktop-level performance, terrific screens (matte, color corrected 4k IPS!) and the new NVMe SSDs. I do most of my daily development on a P70, and increasingly just lug it along when I travel even though travel was the reason I bought the XPS 13.
Also, do realize that the UltraSharp model will have a significant impact on battery life. The comments I've looked at for the XPS 15 9550 (4K display) say that the battery life is basically halved, but it's supposedly still around 4.5 hours of battery life.
If you prefer the 15-inch, you might want to wait for a while - they still only feature Skylake CPUs and I think an upgrade is imminent (given the recent XPS 13 upgrade and all.)
I don't have any personal experience with the machines, but I'm planning to buy the XPS 15 once it gets an upgrade.
Out of curiosity, what has you disappointed with Apple's new laptops?
Why on earth there's no startup which just puts together linux laptops? I'm sure you can grab Chinese/Taiwanese/Korean whitelabelish product customised with linux friendly peripherals or just put the box together yourself with engraved penguins here and there. Half of devs would love it, another half would hate it - but that should be enough to survive, no?
Otherwise I think it a great machine.
I liked it, but I didn't travel with it so not sure how carry-able it is. Current shop is Mac oriented but I would have gotten another one if it had been up to me.
I suppose that the thing will only improve with future Ubuntu Hardware Enablement Stacks that include new kernels and so...
Just be careful with the Dell Thunderbold 3 TB15 dock (not sold any more I think). I got one, and with the latest drivers it works, but has some quirks.Also be careful to sort out complaints about the XPS in the net: may have problems using the dock, not with the laptop itself.
And the touchpad is great by the way.
Might want to consider the skylake version, sure it's the previous generation, but the CPU perf is pretty similar, and the Iris 540 is a significant GPU upgrade. Not a nvidia/ati killer by any means, but much better than the normal intel integrated graphics.
Either that or way for similar to ship in it's kaby lake incarnation.
Also keep in mind that the "upgraded" 3200x1800 screen about halves the battery life and is reflective. Not really worth it for me (at least in a 13" screen).
Sadly you can't get more ram or an i7 with the 1080P (they called it FHD) screen.
I think it's really good machine.
Granted I owned the older 9343 model but despite the many BIOS updates (and several Linux distros) my laptop kept up phantom right clicks and cursor jumps - very annoying! No issue with Windows 10 though.
I sold it onward and happy with the real-estate 15" provides me once more.
The warranty just ended, so unless they finally fixed it for good, the machine may have been a waste of a thousand dollars. I'm crossing my fingers and hoping it keeps working.
- Plays 4k video under Windows 10
- Runs Arch linux without any hardware compatibility problems
- Silent, portable, fast (pick all three)
It sounds like an advert but this was a machine I didn't pick myself and it is the best computer I have ever used. The next time I spend money on my own laptop I will move from Thinkpad to Dell. This is after using Linux on Thinkpads for the last 13 years or so.
I thought this was worth mentioning as the Latitude is probably a bit cheaper than the XPS.
It's basically a rip-off of the (2015) macbook machined aluminium body design. It has the 7th gen processors rather than than the 6th of the new macbook, and a similar price.
Not sure about linux support, from what I've read there may be an issue with the webcam.
I ultimately went with a retina MBP (early 2015). My next laptop is likely to be either a Lenovo T460 or a Dell P50 (or their successors).
It sounds like the software you need is available on all three operating systems, so the Dell machine is a fine choice.
I'm assuming that the movies you want to watch are rips or Netflix and not something like UltraViolet streams.
I got some very good - and upgradable - hardware at a good price with an extended battery. Good call, would buy again.
Ubuntu 16.04: Pretty much works flawlessly as long as you have Intel WiFi- I had some issues with a flashing screen at first but they all seem to have been resolved using `apt-get upgrade`. Suspend/resume, audio controls, and brightness controls all work fine. I run docker images for pretty much everything and it's great to have native docker without a VM involved.
Physical Characteristics: It is very light and easy to use on the lap, on the couch, or in bed. It feels more like a MacBook Air than a MacBook Pro. Fans are on the bottom but they don't really spin up that much, even when I don't have anything under it.
Keyboard and Touchpad: Keyboard is fine. Touchpad is a lot smaller and more "clicky" than a MacBook Pro. The force touch on the MacBook Pro is way better (it's pretty much the gold standard of touchpads).
Screen: I have the FHD screen because I don't care about touch, and it is Matte (the QHD+ touchscreen is glossy). DPI scaling in Ubuntu 16.04 is hit or miss. In my experience, some apps, like Chrome, only respect DPI Scaling if it's in multiples of 0.5 Other apps, like Firefox only respect DPI scaling if it's an even number. JetBrains products do a good job of respecting DPI scaling though. I keep it at 1x DPI scaling, so everything looks pretty small at 1920x1080. If you go with the QHD+ touchscreen, native resolution is 3200x1800 so 2x DPI scaling will be an effective resolution of 1600x900, and it will look great. I think most apps should work fine at 2x DPI scaling.
Webcam: The webcam location really is stupid. I dislike video chatting on this computer so much I'd rather use my phone. I use Android and kind of miss iMessage and FaceTime from the mac (it's how I would talk to some Apple friends), but whatever.
Other Thoughts: Linux FTW. IMO, the last good release of OS X was 10.6.8. Everything after that either changed the scrolling direction or added some sort of bloat to the OS. I'd run 10.6.8 still if I could. Ubuntu 16.04 feels like getting your life back. It's super quick, you can use apt-get to install dev tools instead of hacking around with homebrew, you get the real version of `sed`, and you don't feel like Apple controls your life anymore. Gotta say it twice- native Docker support and no messing around with VMs anymore!
Take the leap of faith and get the XPS 13. Or a Lenovo with good linux support. Part of me wants to try out the big ass trackpad on the new MacBook Pro but none of me wants to go back to paying $2k every time I want to upgrade my laptop.
Take your time to actively process your feelings.
Leave your daily routine for some time and give your brain room to work undisturbed. Do something that keeps you physically active all day. Do something creative.
Explore your feelings and try to find out where exactly they come from. Don't give up just because thinking about it hurts more. It will help your brain to cope. Actively think about the countless positive memories you have. Bad emotions are much more powerful and tend to overshadow everything else.
Learn to accept.
Get plenty of sleep, it helps a lot.
One thing that I have found to be very important is: don't fight grief.
I've realized it's a normal feeling, you should let yourself feel it, it's only worse if you try to fight it.
Remembering "the good times" with common friends/relatives/??? instead of racking your brain with the "why" also seems to make it a bit better.
Other than that, only time will fix things.
Sorry for your loss.
Realize that this part of you is with your friend as you had shared time, life and love together.
But in all that hurt and pain due to the loss also realize that there is a part of your friend still with you. Find it. Your tears will lead the way.
That might be a way love bridges even death.
Might take a dozen listens to internalize half the content, but it'd be adopting a different perspective on life. Won't come easy
I felt grief.
I started again but was infuriated.
Lesson: ALWAYS MAKE A COPY OF YOUR WORK!!
(You did not specify what kind of grief)
Updates are slower to roll-out to the hackintoshes, major OS upgrades can be quite a bit slower to come. This can include security fixes too.
I ended up installing Linux and never looked back. It turns out most of what I used on macOS was just the unix-like subsystem. Having Linux was just as good, if not better than being on macOS.
Of course this doesn't help if you're doing iOS development, or need to use Xcode. I've moved away, myself, but have talked to others who have used a Mac Mini as a build machine. You could also install OS X in a Virtual Machine under Linux and use it for development, which requires its own set of hacks but fewer.
Linux distributions I would recommend:
* Solus, I really like where this project is going and it's my daily driver now.
* Arch, allows/forces a truly custom setup, you end up learning a lot about your system, but might be too distracted with your system to get work done ;)
* Antergos, an Arch alternative w/ batteries included.
* elementary OS, it's the Linux distro made by the folks who loved macOS. It's beautiful and you might like it more than macOS itself.
For a better SNR than browsing Tonymacx86 forums, try https://reddit.com/r/hackintosh
The closest you can do, is to install Darwin (opensource), and GNUstep (opensource).
Then you can develop Openstep/Cocoa applications on your non-Apple laptop legally and in total freedom.
If you have customers who would want a MacOSX executable, you would then give them your sources, they would download Xcode, and they would compile them. This is why the GPL has been invented (or other licenses such as BSD, MIT, etc).
Now of course, GNUstep doesn't track the evolution of Apple Cocoa very closely. Your application will be compilable for MacOSX if you take some care to write it portably, and you won't be able to take advantage of Cocoa specific features, only the most vanilla and plain Openstep features. Depending on the kind of application, this may be more than enough.
Save your sanity and money - you can get some nice specced refurbished/used MacBooks that can just run the latest Apple stuff for a good price and save a lot of frustration with foreign hardware issues now and down the road.
Things will "just work" and you will really appreciate it.
Doing the whole hackintosh thing has improved from previous years. Before it was an absolute nightmare. It's still a lot of pain. Just less. So you have that option as well. Just remember it doesn't play nice with all hardware and you will have to fiddle a lot. Every update you will have to do your research and pray to the god of moving bits that it's a smooth transition.
then choose your osx version...
The keyboard on the MB takes some serious getting used to (actually, in the ~8 months that I used that computer, I never became fully used to the keyboard), but the screen and physical size of the MB was better than the MBA. (Of course, the processor was noticeably slower... so YMMV.)
So IMO, they did the right thing, there was too much overlap between models. The MB still needs to get faster and come down in price, but I do think it will be just as ubiquitous as the MBA within a few years.
I agree with others that the current line up is sorely lacking an affordable laptop, but that will likely change (slowly; hopefully) as manufacturing & component costs come down.
Apple should have a mid priced laptop for casual users.
Another one is https://www.coursera.org/ - similar (last time I looked there have been free courses in there)
Iirc I read research showing that no physical activity can compensate for sitting. We need to sit less and move more often, something like every 20-30 min.
As for stretches I'd second physical therapy. For the pain I'd also recommend Feldenkrais as well as Yoga.
Based on my experience I'd also recommend seeing one in a private practice, not attached to a large hospital, but ymmv. Hospital centers I went to would only treat one thing at a time for insurance reasons even though I had two problems.
Anyway, I think good professional guidance will help you recover faster and more completely because they'll be able to identify problems, design solutions, and give you feedback & knowledge more effectively than if you DIY.
I have fallen in love with the material from Eric Goodman. His company is called Foundation Training, and he has a lot of freebies on YouTube.
I would say, with no hyperbole, his simple exercises have changed the way I walk, stand, and move in general, and they have been the antidote to my hours at a desk.
Maybe it will be valuable for you!
Stand up and walk for a minute every fifteen to thirty minutes can help a lot, and also is an opportunity to reflect on the work you just did. Not typing isn't a synonym for not working.
This project is big, it's definitely not your average webapp express node.js you see these days.
From my experience in projects this big with a big team, there's absolutely no better solution than reviewing code carefully and caring about quality.
I was in the same situation as a consultant a few years back and the rule to leave code better than you arrived at it is a real trigger to most people that respect what they do.
I'd say that the VP ENG should be involved in the process and set some rules for what is acceptable quality and what isn't.
One more thing
Everyone knows a smell, every single member of your team has some piece of code he/she saw that doesn't make sense.Keep a document with all of these and just make sure you scratch them off EVERY single day.
Stuff like: * User Creation is using LOCK on table_x and it shouldn't* Form submit code is too complex, need to be better* Extract component X into a microservice
If you go through a list like this and fix things one by one, you'll be better off in a short amount of time.
Don't try and take it all at once, create manageable consumable pieces that your team can relate to, understand and get behind.
So how do you go about making code quality improvements:1) See if you can remove unused code/dependencies/features. Less code means less code to support, and faster compile and testing times. Look at metrics like code removed
2) Focus on the most problematic areas of the code and eliminate errors and bugs. If you can eliminate a significant source of unplanned work/firefighting, you'll have more time to spend on planning development instead of just reacting to work. These problematic areas are where tests will be most useful
3) Add static analyzers and linters to easily detect simple problems (like unused variables, style problems, problematic constructs such as if(foo = bar). As you develop your coding guidelines, implement the rules in these tools to automatically find these minor problems. This will allow your code reviews to focus on the big picture instead of nit-picky implementation details.
4) Do things to close the feedback loops for development. Consider running testing throughout the day. Maybe try to increase release cycles. Maybe add UX earlier in the cycle
Going from top to bottom:
> Our company builds a java openGL CAD/CAM application suite for windows desktops
If it's an application suite then, from my understanding, you'll be building a main set of libraries and then a set of tools that all use these libraries. Have you considered a hierarchical plugin design? Have a main application that starts and setups all of your main rendering and CAD/CAM magic. Then go from there to working out a simplest of APIs to what everything actually needs access too.
Your main application basically just manages UIs/drawing to an OpenGL port. From there you can load modules to do other things. If you abstract what is needed then each module should only need to define How a functionality is executed, not where and what a functionality should look like in the UI. For instance refactor your code to follow such a structure:
Master UI System (Exposes: "Options", "Renderables", "Views") -> Drafting Plugin (Exposes: "Models", "Collision", "Faces") -> CAM Plugin (Exposes: "Routing Paths")
Drafting Plugin needs to know about Master UI but nothing about CAM Plugin.
CAM Plugin needs to know about Master UI and Drafting Plugin.
That's what I would try and do if this was a new project but this isn't one and uprooting your entire (or even any recognizable percentage of your code base) is unreasonable.
> We have a couple tens of million LOCs, with ~50 projects and 1000s of packages
If you've got that many packages then you might want to find out what sort of abstractions are being used, not working correctly, and remove them/replace them with simpler solutions. How much of these packages are filled with Interfaces/Abstract Classes/Implementations of interfaces
> After ~10 years of neglection we need a strategy to increase the code quality (lots of dependencies, feature envying inheritance hierarchies, spaghetti code, similar problem are solved in myriad ways, all that jazz).
One at a time:
> lots of dependencies
Slowly replace dependencies by either abstracting features further, replacing with new standard library features, or by implementing other solutions to the same problems. Every dependency is an added layer of complexity in my book so it's best to avoid this as much as possible.
> feature envying inheritance hierarchies
This comes as a side effect of not knowing what a level of abstraction is actually meant to be doing. Have a team meeting and ask what each team thinks the actual problems that are needing to be solved are. The people knee deep in crap will have a better idea of what's the correct or natural abstraction for these cases if the ones currently being used are unnatural. It may just be that the code base has had too many large scale changes or even just have had too many features pushed in at once (which for a CAM/CAD tool is definitely not unheard of, this is a very specialized and hard task)
> spaghetti code
Get some sort of static analyzer. I remember one group I worked with used Sonar. Also remember that the best code quality tool is a good agreed upon set of standards. Somethings that have worked for me on some group projects I've worked on has been: Avoid complicated constructors, always default a variable to final, avoid complicated logic statements always exit early rather then filter before in a for loop, use all the up-to-date constructs to aid with code clarity (try(stream), for(var:set), and more).
> similar problem are solved in myriad ways
If there is one problem that exists in two places this is an opportunity for you to pull the part out, abstract it, and use it as a library. This is a double edged sword since these two parts actually need to contain the same problems which some times is not the case.
Now to the nitty gritty:
> How do you measure code quality? How do you interpret the metrics?
(How many times does the code result in an error) * (The time in hours that it takes to debug the code).
Larger number is worse. Keep a notebook/log of these times, graph them, and use that as a map to decide what is worth refactoring. If a piece of code "just works" but looks ugly it can wait to be refactored if there is another piece of code that looks "visually appealing" while still causing daily side effects in the active development of the project.
> What are good tools for a windows/java/eclipse dev environment?
I've always managed ANT scripts for my group projects since they are very very cross platform. Maven works great but I'm not a fan of the complexity of install for non-linux users. Also check out IntellJ for built-in maven support.
> How do you act on the metrics and actually improve code quality?
Change your code by coming at it from a different perspective. If that perspective yielded a more promising piece of code (that is easier to understand, causes less side effects, and uses less external/non-standard functionality) then you keep it. A lot of my code I write is code I throw away. This is much harder to justify to business people but it's an important part of the process to sketch up what you think might work even if the attempts aren't always fruitful.
> Can you recommend any resources of success stories on how companies managed to increase code quality of a big, tangled system?
Check out the U.S. Digital Service for the only recent success story that comes to mind .
If anyone knew the secret sauce they wouldn't give it out for free. The ability to "Fix" all the "Broken" projects isn't an issue on the scales that we think they are. A large portion of all technology-related projects fail . If anyone could prove they where able to reliably fix these issues they'd be billionaires over night.
 - http://www.zdnet.com/article/study-68-percent-of-it-projects...
 - http://www.theatlantic.com/technology/archive/2015/07/the-se...
Edit: Removed "What do you mean by thousands of packages?"
Looking forward to what you think of all this.
The latest updates to iOS seem to make things laggier as well, to the point where the keyboard might pause after I hit a key.
(I'd actually love it, I use a MacBook and a iPhone. One charger would be great).
In addition, Apple controls Lightning completely so when you buy an accessory that uses Lightning, as long as it isn't counterfeit, it has been tested by Apple and is guaranteed to work. They can't guarantee that with USB-C.
That said, it's an awkward situation. Overall I'd like USB-C on my phone however if they were going to do it, surely it would have been with the iPhone 7. It wouldn't be great if they announced it with the 7S after people had gone out and bought Lightning headphones.
IMHO it's an anti-feature not to use USB-C on iPhone.
- Conditional breakpoints!
- Avoid "Pause On Caught Exceptions" if you are working with date libraries... unless you blackbox them.
- Using the profiler to identify unknown bugs is effective sometimes. This can be initially overwhelming.
- Ctrl+p for fuzzy finding loaded resources.
- Get comfortable with Continue, Step Over, Step In and Step Out.
- $0-4 in the console store the value of the last selected nodes in the inspector. e.g $($0) would provide you with a jQuery wrapped node
- "Long Resume"
I also recommend you enable capturing async stacktraces and the setting which disables cache when the tools are open.
Pretty much every mailing service will let you send plain text emails.
Google calendar allows email notification on events. You can also do Facebook group email notifications. There are many other services that have that.
Here's a free idea for you:
Deleted Wikipedia. Show me the stuff that got deleted (as in edited out) from a given article.
All the people who know both products exist .... is probably just you.
If your company fails it'll definitely be because of what you did, not what they do.
If your company succeeds it'll - almost - definitely have nothing to do with anything the other company did.
Perhaps the best advice is from Michelle Obama: "When they go low, we go high"
Consider aiming for high end users in your market, then you need far fewer customers to generate a decent wage.
For example if you charge 49 vs 9 then you need 5 x less costomers to hit your paycheck.
Just be sure to validate with real customers that the market can bear the price point you need.
Outcompete them on quality. Pretty simple. And don't forget that you don't compete with each other. You compete with being considered irrelevant.
The message you need to worry about is almost certainly not "Why you should spend money on my product instead of getting theirs for free." The message you need to focus on is why people should want your product at all. In fact, before you get to that stage, your message may need to be as simple as "We exist."
This was the marketing goal of Aflac's initial duck commercials. They were a little known insurance company with low name recognition. They tested two commercials. One was a more respectable, conservative commercial. It achieved around 40% name recognition, which was the industry standard and would have been a big improvement. The second achieved 90% name recognition, but was a silly duck making fun of the sound of the name. It was considered hugely risky, but the CEO latched onto the 90% name recognition metric and went with that campaign.
After becoming a household word, they changed their marketing campaign goal to trying to educate people about their product. It was poorly understood as to how it differed from other insurance products. Yet, they were already a Fortune 200 company because everybody at least new their name and that they existed.
Cart and horse and all that.
No, not possible. I mean you can fake your way in, but you won't be employable on pure skills alone. If you have never touched an instrument or cared for music, you cant play in an orchestra after only four months of learning when you are 37. Maybe some prodigy can, but not 99.999% of the population.
1) Maybe more than 4 months to be an employable junior developer, but certainly under a year if you're willing to put the time into it.
2) "Front-end development" is very broad. You could work for anyone making anything doing that. And that could easily be a feasible first step towards a career in development, especially as it'll give you paid opportunities to practice. But
3) You have 12 years of professional experience. Capitalize on it. Are there applications that would help in those niches? Are there solutions that could be provided? Maybe not an application, but the synthesis of several to create better workflows and environments for workers in non-profit project management/fundraising.
What were your pain points in your prior career(s)? What did you see organizations struggling with? Create solutions or find solutions to fill those needs, and then market them (you have a marketing background, should be helpful, and industry connections, even more important). If you aren't interested in doing a startup or consulting yourself, maybe look for existing companies that are trying to fill these needs.
EDIT: Also, for anyone else reading this, particularly from technical backgrounds in other engineering/science disciplines, I highly recommend considering that 3rd statement. You have a great breadth of technical knowledge, unless you just hate the field or have a true passion for something else, no reason to abandon it.
Maybe I could show how much I care about the cause, by volunteering at an event. Or helping out running a fundraiser.
I'd ask yourself the same question for engineering.
I think a good answer would be something like: "I thought building cool web frontends was a really interesting problem, so I taught myself the basics (books, online courses, classes) and built (INSERT THING HERE) to build the kind of thing I would love to see in the world."
I'd say get your feet wet by learning Python and some basic algorithm knowledge first to see if you're actually interested in programming. Also, learn a lot before trying to Stack-Overflow your way to an app. That approach is exponentially harder the less you know about software development.
To answer your questions:
1. Is it possible to do in 4 months? Certainly, but you will have to work your ass off, and also work very efficiently.
2. How is it possible? Work 60-70 hour weeks (easy if you love programming and can finance yourself without a job, hard otherwise), and have a super efficient curriculum.
3. What path should you take? I'll give you my advice below. To do so I'll have to make lots of assumptions about your situation, but here goes anyway:
- Avoid bootcamps. Assuming you're more motivated than the average person in your class, they will only slow you down. (One of my friends started a bootcamp against my advice, regretted it, and quit halfway through. The pace was too slow. Very few of the graduates got jobs afterwards.)
- Give up on being full-stack. Four months is not long enough. You will need to strategically cut corners, and this is a big one.
- Buy a Mac, ideally a MacBook Pro. Get one used if you have to. Don't try learning on a PC.
- Right off the bat, start using the Terminal for everything: downloading files, installing programs, opening programs, navigating the directories on your computer, copying files, deleting files, etc. When you don't know how to do something, Google it. It will be painful at first, but you will get good eventually, and it will save you pain later.
- In general, remember that learning new things (everything below) will often involve lots of pain and frustration, but push through it. Once you start to develop mastery in an area, it tends to get much more fun.
- When learning, you want to "see saw" between reading and doing. Too many people try to read and memorize everything, but that's impossible. Reading is just to orient yourself so you can figure out where to start. Doing is how you learn and remove confusion. Then you read some more to answer specific questions. Repeat.
- Start with HTML/CSS. Find cool website screenshots on Dribbble.com and try to build rough versions of them from scratch. Don't neglect to learn flexbox. Do this regularly for a cpl weeks and you'll get good.
- When you are good with HTML/CSS and familiar with JS, it's time to combine the two. Learn about the DOM and learn about jQuery. You'll see how JS can make your pages interactive. Work on small projects, the first of which should be a portfolio that you can showcase your subsequent projects on. Use Git and GitHub for these projects.
- When you do get a job, don't stop learning. Everyone I've taught stopped (or significantly slowed) their learning after landing their first job. They regretted it later and eventually resumed learning.