Category: tech

  • How to Avoid Adding Passwords to Git

    I was working on figuring out how to log ftp scripts, and discovered how to use a remote file: .netrc to store usernames and passwords. So I’m going to have to apply that to a number of scripts in the DigitalSignage program I’m working on. Hmmm, which makes me realize I’m doing the same for the main RETS library I’m accessing!

    Then I randomly clicked on a YouTube “Tech Code” channel and watched a guy describing how he accidentally hard-coded a password into his program, and saved it to git–thereby uploading it to anyone who has access to the source code. Yikes!

    The solution to hard-coding usernames and passwords into programs that get moved about is to use an environmental file: .env (for python or laravel for instance) that stores the either local or remote (test / production) settings. Of course!

     

  • Web Analytics: First Steps

    Step 1: Find the best rated “Google Analytics” book on Amazon Search

    OK, I found a couple books: Web Analytics 2.0, and Web Analytics: An Hour A Day, both by Avinash Kaushik.  Looking good, but really old in internet years. I remember making a point to study the first book a long time ago…

    Step 2: Google him!
    I found a few interesting things: 1) his website is called Occam’s Razor. It formed the basis for his books, so I should be able to get a lot of info from them.

    Next I found: “5 Avinash Kaushik blogs every digital marketer should read” in google search. Why not?! I’m getting distracted.

    In signing up for Avinash’s newsletter, he refers me to an article featuring an icon of the design industry: Dieter Rams: Ten Principles of “Good Design”, one can’t go wrong studying Dieter!

    So, time to do the “hour a day” in reading up on this. (Only problem, I’m already overbooked!)

  • The Mobile Internet Is The Internet

    The Mobile Internet Is The Internet

    Think back to the mobile phone you had in 2010. It could access the internet, but it wasn’t such a great experience. On average, people only spent 20% of their time online on their phones back then, according to Zenith, a media agency. Today, by contrast, we spend around 70% of our time on the internet on phones, based on estimates and forecasts for more than 50 countries covering two-thirds of the world’s population. By 2019, Zenith says this will rise to close to 80%. What used to be called “mobile internet” is now just the internet.

  • Summary of The Coming Software Apocalypse Article

    Summary of The Coming Software Apocalypse Article

    A small group of programmers wants to change how people code—before catastrophe strikes. — from the Atlantic Magazine

    • Basic Premise: Code is getting too complicated–how to make it work better for humans?
    • Example: Problem with 911 calls going out due to simple counter bug
    • Software is “eating the world” but unexpected complications create havoc
    • Engineering is 1950s state of thinking: simple failures.
    • Problem with code is that the complexity is invisible.
    • Example of hackers remotely taking over a self-driving car.
    • John Resig, creator of javascript, tech lead at Khan Academy, wondered why learning programming is so tough. He watched a talk by Bret Victor in Montreal in 2012, (Inventing on Principle), about how programming is broken, and how to fix it.
    • Khan Academy has become perhaps the largest computer-programming class in the world, with a million students, on average, actively using the program each month.
    • Bret wants to work with images instead of abstract text.
    • Programming should be visual like WYSIWYG programs.

    Example Pic:

    Demo of WYSIWYG program
    Demo of WYSIWYG program: slider on right controls animation on left.
    • Airplane engineering has dealt with complexity by writing SCADE product family (for safety-critical application development environment)
    • Think: MDE (model driven engineering), so you write logical templates, not hand-written code.
    • Documentation is another area where what people want can differ from the code that gets created.
    • “Architects draw detailed plans before a brick is laid or a nail is hammered,” he wrote in an article. “But few programmers write even a rough sketch of what their programs will do before they start coding.”
    • Programmers tend to be pragmatic and distrust the theoretical, ivory-tower stuff, which also works against programming improvements.

  • Rough Overview of Programming Languages

    Java is mainly large enterprise back end systems, and some android, and quite a lot of embedded stuff (nominally what it was invented for), and, worryingly, quite a lot of client side GUI stuff.
    C++ is used for legacy systems and where you need speed.

    C is used where you need speed, have simple programs and memory constraints, and old fashioned unix software.

    C# is for windows programming and .net

    Javascript is for browser programming and Node, and some general scripting, where someone has used it as their system’s internal scripting language (see also lua)

    PHP is used for relatively simple web stuff, because it’s easy and works and has wide library support

    Python is used for what PHP is by better developers, and has brilliant maths libraries so is increasingly used for anything maths related where esoteric things like matlab and R and F# are unhelpfully niche.

    Haskell is used for academic curiosity, and some maths stuff.

    Perl is dying out, but is still used for unix automation a fair bit.

    https://ask.slashdot.org/story/17/06/12/0136253/ask-slashdot-will-python-become-the-dominant-programming-language