OkoWatt Energy Saver Device Reviews 2020

The worst condition that every office or household person faces today is the huge electricity bills that make them lose money from the pocket. You cannot skip the basic electricity requirements today but there is a possibility to cut off the power consumption. Yes, this is now a big possibility with the introduction of OkoWatt power-saving device that consumes 50% less electricity. It stands in high demand today due to its exclusive features and affordable price range. People are loving it and using it with full of confidence that makes them a real hero and energy-saving enthusiasts. We would now review some short properties of the device in a short review below.

What is OkoWatt?

OkoWatt is an energy-efficient power saving box that you may install to the electric socket and save up to 50% less energy and huge electricity bills. The device is safe and reliable to install at house, restaurant, hotels, and office because it is a shock-proof and heat-proof technology. The company offers exclusive price discount on the power saving device for the customers. It arrives with a bright LED light that turns green when you turn it on to function. Compared to other power-saving devices it is durable and small in size that makes it convenient to install.

The Technical Specifications of the Okowatt

  • The temperature control feature sets it between 15-60 degree centigrade.
  • Works between 90-250 power supply voltage
  • The frequency lies between 50hz-60HZ
  • Is compatible in size of 70x100mm and is lightweight
  • Bright LED light feature display helps to monitor
  • Easy to install and plug-in the electricity sockeT

The Benefits that make Okowatt worth purchasing

  • The device helps to reduce the power consumption and also identifies the power of wasting units
  • It measures and analyses the quality of power for household, office, and other places
  • Has heatproof and shockproof technology that makes it safe to use
  • Is ideal for various electric devices such as TV, fridge, AC, washing machine etc
  • Easily adjusts to various models of electric sockets
Posted in Uncategorized | Leave a comment

The CodeNewbie Holiday Wish List

The holidays are here! It’s time to exchange gifts with those near and dear to us, and maybe grab something for yourself too. If you’re shopping for a coder, here are some fun gift ideas.

Bitcoin Paper Wallet with Bitcoin in it

Go low-tech to stash some high-tech currency. According to multiple sources (here, here, and here) paper wallets are a fairly secure way to store cryptocurrencies. You can DIY with a tutorial or order a fancy wallet kit featuring holographic stickers!

– Bitcoinpaperwallet kits – starting from 0.0007 BTC (around $12.77 USD)

Glitch Leggings

Cyberdog made leggings featuring source code from their own website! With glitches (of course). Your choice of white tights with black lettering or black tights with white type.

– Glitch leggings – $52

Mechanical Keyboards

Beloved by gamers and those who revel in the nostalgia of click-clacking keys, mechanical keyboards are fun, slick and often colorful, too. Try these:

– Das keyboards are well rated – $119+

– Razer has some beautiful designs – $99+

Bubblesort Zines

Bubblesort zines are incredibly cute and skillfully deep. Grab titles like “How Does the Internet”, “Literal Twitter Bot” and “Pixel Perfect” to learn computer science basics painlessly. The storytelling! The explainer on Instagram filters! The illustrations! We just can’t get enough of these clever little books. They make great gifts for coders and non-coders alike.

– Zines – $8

Raspberry Pi or Arduino

Tinkering with hardware is a super rewarding way to learn about computer science! These kits are beginner-friendly, and they have lots of optional add-ons. There are hundreds of project ideas online. You could build a smart mirror, retro videogames, wearables, or motion-triggered lighting around your house. Or you could wow your friends with a laser harp!

– Raspberry Pi starter kits

– Arduino holiday gift guide

Binary Socks

Nothing says “I love coding” better than mustard yellow socks covered in ones and zeroes! Or not. It’s your call. On Teespring, you can get bright binary socks or choose subtle sock colors like black, blue, or grey, if you must. A rainbow of options awaits!

– Programmers’ Socks, $15

A Better Monitor – Portable or Vertical

Portable monitors make working on the road oh-so-much easier. They’re perfect for the entrepreneur or digital nomad in your life.

– Lilliput 7”– $99 – Easy to throw in a tote bag and go, the Lilliput is small and also versatile. It leans on a tiny leg that won’t eat up desk space. This model is also rotatable. You can use it in portrait or landscape orientation.

– Asus 15.6”– $187 – Enjoy a large display at a mid-range price with this Asus monitor. Only one cable is required to connect it! USB powers the monitor and transmits video.

– GeChic 13.3” – $329 – Almost a tablet, this monitor features touchscreen interaction, speakers, and multiple video connection options (HDMI and VGA).

Pivoting monitors rotate on their base so you can have a wide display or a tall one. Lines of code tend to be short, so the advantage of a tall screen is that you can fit more code on a long screen. You can see surrounding code, and navigate through long, nested sections with ease. It’s a game changer!

– MagicHold Rotating Double Laptop/Monitor Stand – $79 – Ideal for a desk, and no drilling required, this gizmo will hold two screens or laptops for you. Clamp it onto a table or desk, and move it where you need it. Great for shared office spaces at home, where you might want to swap out devices, or clear it out of the way for other activities.

– Viewsonic 22” – $99 – Get in on the tall screen game. Only 1080p, but also only $99.

– Asus 27”– $224 – Sold as a more ergonomic monitor, this model is bigger and fully adjustable. It tilts, pivots, and swivels to accommodate virtually any workstation, at any time of day. For everyone who works in an open concept office with massive windows, here’s a monitor that’s easy to shift as the sun moves. Got 3PM glare? NBD! Swivel.

Anything from A Book Apart

This is one of our all-time favorite publishers! Self-described as “brief books for people who make websites”, A Book Apart publishes helpful content from recognized experts on topics like CSS, SASS, responsive design, and (we love this title) “Git for Humans”. It’s all packaged in lovely little volumes that are affordable and easy to digest.

– Check out abookapart.com

Posted in Uncategorized | Leave a comment

Mentors on how to get a job in gaming, get started in VR, and use side projects to learn

Our first #MentorMonday focused on gaming. We had three amazing mentors with years of experience in the industry share their thoughts, answer your questions, and, for this blog post, respond to the most common questions they were asked. Make sure to join us for our next #MentorMonday, Oct. 2 on getting a tech job.

What’s the most common question you were asked this week? What’s your answer?

“I just started my first engineering job! How do I transition to a job in games?”

I don’t think you need special knowledge to work in games. Just a lot of passion, and some understanding of how real time applications work. However, it is important to show the passion — it’s often done through side projects or participation in game jams. Game companies also value team work, especially communications with non-engineers, so seek out people of other disciplines to collaborate with!

Furthermore, participating or volunteering in games conferences would also connect you to a lot of people. Even if they can’t get you a job, they are all passionate about games and are great people you can work with!

Alice Ching

Overwhelmingly people wanted to know how to get started with a career in programming. For some it was breaking into the games industry. For others it was starting a web development career. This line of inquiry came from beginners to working professionals. Everyone I talked to had at least some experience; which is awesome. Showing initiative is a key skill for both beginners and professionals alike.

In Indiana Jones 4 there’s a scene where a student asks him for reading advice and Indie recommends someone from the field with the line “You wanna be a good archaeologist, you gotta get out of the library.” I love this line, because it’s exceptionally true for programming. The question of starting a career in programming is the question of how do I create value that others will recognize. You can spend your whole life being inundated by theory, whitepapers, books, tutorials, demos/samples, courses, etc. but if you never make something then you never take an actual step down the path in your career.

How does one get to the place of adding value? It starts by building intuition. Intuition comes from mulling something over till it clicks in your brain. People want to hire programmers that have a good mental model of the problem set(s) they are facing. That mental model is built on small blocks of intuition that get built up over time.

What’s the quickest way to build these blocks? It’s to make something. This is a golden era of social programming. Open source projects are in abundance. It’s easier than ever to share your work with a wide variety of people. Open source contributions act as portfolio pieces. It’s a statement of ambition, passion, collaboration, and competency. It’s also a great place to cut your teeth and learn something new or brush up on dusty skills. But take advantage of it to its fullest.

Leverage it to your success. It’s a much better calling card than anything you can put on a resume. ( and you can put it on your resume )

So in closing, instead of buying another book, fork a project you’re interested in and make it your own. Improve it. Submit patches to it. Add new features. Get Noticed. Profit!

Dustin H Land

What’s one piece of advice you’d like to share with newbies?

Take your time to build up your coding skills. Learning coding can be like learning a new language, and it takes a lot of projects and hands on time to get good.

The best way to do that is through projects that you can show to the world. They could be as simple as personal projects you install on a friend’s phone for show, or contributions to open source projects. Every time you have to show something it forces you to make decisions about your project, which helps you grow as a programmer.

As you are learning and growing, don’t be afraid to keep sending your resume to companies. A lot of them will take in promising junior coders, but they often won’t post the job postings.

Alice Ching

Being at the start of a career, things can appear so uncertain and professionals can appear very distant. But a lot of the things you need to be doing at the start of your career are things you need to be doing even at the peak of your career. Here are some examples.

You’ll always be learning:

Our field evolves quickly by any human standard. I’m always reading new books or checking out a new repository somewhere. That’s exactly what anyone getting into programming is doing as well. The learning process never stops. And that’s the fun part!

Humans respond to passion:

What’s this talk about passion in programming? Listen to one of John Carmack’s speeches sometime. He’s practically giddy about the technology he’s working on. Whole companies and industries are born from an individual or small group’s labor of love. I’d argue that passion is just as important in tech as logic is. If you’re not passionate about what you’re working on, your work will suck and you’ll stagnate in your career. You don’t have to like every little thing, or be happy all the time. But on a whole people should hear it in your voice. Bonus, passion sells. So take advantage of that when interviewing for a job.

Don’t beat yourself up:

Being a senior means you’ve screwed things up enough times to know better. Frustration is a familiar friend and imperfection is a close relative. Seniors still struggle with the “right” answer to a problem. We still have to go home and sleep on it. We still break the build. We still have to hack things together to work sometimes. The key to not souring is to enjoy your successes. Take your failures with grace and move forward. Admit when you’re struggling and reach out. Pursue knowledge and understanding. Seniors are just further down the track from you, but they still walk the same path.

Dustin H. Land

A common theme that I saw this week was about taking the initial steps to get started learning development for a VR or game development career. There are many different options for the types of career you can have in games or VR that require various skills, but the one thing that stays core to all of it is to show an experimental and passionate, curious nature! Developing side projects and sharing them with the world is one of the best ways to gain traction for any type of role, whether you’re more focused on graphics engineering, environment design, animation and rigging – show off your experiments and try different tools. Find one that you like and try building with it. Side projects don’t have to be large, and you can always try to recreate something that exists but with your own spin on things. I find that small projects posted on GitHub and blog writeups are an excellent way to develop an informal portfolio. It’s also important to be excited about the thing you’re trying to make, because that enthusiasm will be a hugely motivating factor for picking up new skills. Set aside a little bit of time where you can to do tutorials and explore game concepts when you can, but try to do it regularly and get into the habit. Often times, skills from other areas of art or software development tie in nicely – there is a growing need for networking, data, AI, and hardware engineers in varying capacity for games and VR in particular, so highlighting interesting ways that those skills can be used in interesting ways as a game component can also help hone in on a particular role that might suit you. Finally, don’t be afraid to reach out to people who work in roles you’re interested in! People in games are generally a friendly bunch who love to help each other out and can provide invaluable feedback and advice.

Posted in Uncategorized | Leave a comment

New Scholarship Program for Web and Mobile Development

Google and Udacity have teamed up to offer a new scholarship for 50,000 people to learn web development or mobile development (Android) skills. It’s a big step for them. CodeNewbie spoke with Stuart Frye, VP of Economic Opportunity at Udacity, to find out what the student experience is like and why they’re launching the program now.

The goal is “[h]elping create upward mobility through better jobs in tech and software development,” said Frye. It’s part of the Grow with Google initiative, which includes several learning aids and a tour of cities that may not typically come to mind when we think “tech”, such as: Indianapolis, Oklahoma City, Savannah, Lansing, Columbia, and Louisville.

This is the first time Udacity and Google have offered a scholarship focusing on the US. Frye explained that “[i]t’s part of a broader effort to revitalize the economy as we transition from sectors like manufacturing and transport.”

“We’re in an economic climate where a lot of states are feeling left behind,” he said. When he was researching labour statistics, Frye found that found 90% of software jobs are outside Silicon Valley, NYC, and the other major coastal cities known as wealthy tech hubs.

Frye hopes the scholarship can reach a broader group of students. Google and Udacity aim to help open doors for people who may not have considered coding before.

Scholarship recipients can choose between two paths: web development or mobile development (Android). Within these programs, you can study at a beginner or intermediate level.

What Students Will Receive

This new scholarship has two parts. In the first part, the “Challenge Scholarship” phase, 50,000 students will gain access to Udacity’s online, part-time web or Android programs for three months.

The top 10% of students who complete the “Challenge” phase will be offered the chance to move forward into 6-month Udacity nanodegree programs that build upon the skills they have already gained.

Learning Support

“Learning to program, there’s a mindset that takes time getting used to,” Frye said. “In programming work, it’s just wrong, over and over again, until it’s not…You have to get used to that mindset of ‘Hey, this set of code is going to evolve, until I get it all worked out, and it’ll finally — aha! — work.’ And I think, for the folks on the beginner path, some of the roadblocks are around getting comfortable with that mindset and getting comfortable with what’s going to feel like failure.”

Frye encourages students to reach out for help. His advice is to be proactive, “rather than thinking that if you ask a question you’re not smart enough, you’re not doing it right, you’re not the best in the class.”

“It’s hard. Especially if you’re new to tech, it can be an intimidating space to enter. We’re trying to make it as un-intimidating as possible through those [support] communities.”

Udacity has forums structured much like Stack Overflow. They’re “dedicated to asking and answering course-related questions, so as you watch a video, or attempt to do a quiz, if you have a question or run into a problem, you can post your question there. Our staff will be there to answer your question, if a student doesn’t get to it first.”

Outside the classroom, scholarship recipients will also have the Slack chat channels for each of the four tracks: beginner web, beginner Android, intermediate web, intermediate Android. Those Slack channels will also be staffed with community managers to facilitate student discussions.

Topics and Projects

In Phase 1: Challenge scholarships (3 months) students learn the following:

Beginner web development lessons show students how to build a basic website using two languages, HTML & CSS.

Beginner Android lessons teach students how to code to create a single-page Android app with images, buttons and text.

Intermediate web development lessons focus on responsive (auto-resizing), interactive web applications. They’ll also learn ways to make websites work well offline.

Intermediate Android lessons guide students through the creation of more complex, interactive, multi-screen mobile apps.

In Phase 2: Nanodegrees (6 months), the top 10% of students from Phase 1 gain access to the following project-based programs:

Beginner web development grads move into the Front-end Web Developer Nanodegree

Beginner Android grads gain access to the Android Basics Nanodegree

Intermediate web development grads progress into the Mobile Web Specialist Nanodegree

Intermediate Android grads proceed into the Android Development Nanodegree

Who Should Apply

Frye emphasized that the program is aiming to reach out to people who may not have considered tech-related education. The scholarships are open to people of any educational level, any career history, any age, so long as you’re over 18.

Also reassuring: “Staff and mentors will be available to answer questions that you have as you walk through the content,” he noted.

According to Udacity’s FAQ page, the average student spends about 10 hours a week on their lessons and projects. It was designed to be a part-time program than can fit into an already busy schedule.

The lesson videos are all pre-recorded. You can watch the videos at any time, on a computer or mobile phone.

Previous Students

Udacity has launched several scholarships with Google. “Women Techmakers [a global scholarship open to women] is one example of that,” Frye mentioned. They have also run scholarship programs across the European Union, Egypt and Nigeria.

We asked about typical students. Frye said they vary widely, including people who have dropped out of high school or business school, parents, people who feel stuck in minimum wage jobs. A few of their stories have been captured in videos here and here, as well as blogs here and here.

How to Apply

The deadline for applications is November 30th, 2017. Winners will be notified December 7th, and they’ll have access to their online classrooms December 11th. You can find more information and the application forms here.

Posted in Uncategorized | Leave a comment

What is Swift?

Swift is the newest language available for developing apps for Apple products — all of them! Though Swift is synonymous with iOS and iPhones, one of the exciting reasons to learn it is that you can also use this language to code for Macbook, iPad, Apple TV, and Apple Watch.

History

Chris Lattner started developing the foundations of Swift during his Ph.D. studies at the University of Illinois in 2010. After his Ph.D., while working at Apple, he gradually rallied support and funding for the new language.

Only a few people knew about the language in 2010, but collaborators were making significant contributions by 2011, and “[i]t became a major focus for the Apple Developer Tools group in July 2013,” says Lattner.

In 2014, Apple revealed Swift beta at their annual Worldwide Developer Conference (WWDC).

Purpose

Before Swift, Apple products relied on Objective-C, a difficult language developed in the 1980s.

Apple introduced Swift to make it easier for people to write software for Apple devices. Swift is a simpler language with lots of new features that help coders identify errors and prevent issues that would slow down the programs we build. Many applications still use Objective-C, though. You can use both of these languages in the same application. Apple designed them to coexist.

Do I need to learn Swift?

We combed through more than 30 developer recommendations all over the web. Here are the pros and cons we found to learning Swift as a beginner coder.

PROS

  • It’s more concise than Objective-C, meaning you can type fewer characters to achieve the same results. For example, when Lyft rewrote its app in Swift, developers reduced the program’s length from 75,000 lines to 22,000 lines, says Keith Smiley, an iOS engineer at Lyft. As a beginner, this means you can write faster, but more importantly, you can debug faster. It’s completely normal to spend hours trying to locate one error in one line of code in any language. When there’s an option to use a more concise language, that can reduce errors and debugging time. Huge win.
  • It looks very similar to English, with minimal “technical formatting” (fewer semicolons, etc.). So if you’re a new programmer, it means it’s a lot less intimidating.
  • You can learn the language using iPad games that gradually introduce general programming concepts and let you use autocomplete or drag-and-drop interactions to write short chunks of code.
  • With the latest educational games on iPad, you can use Swift to control robots and drones — in real life!
  • Apple is still improving Swift. With multiple new versions since 2014 (the latest is version 4), beginners can rest assured that Swift is likely to stick around for a while. Learning now is a good use of your time.
  • Some developers predict that Swift will completely replace Objective-C in the next 5-7 years.
  • Swift is being used for an increasing number of purposes outside of Apple’s devices and products, too. In 2015, Apple made Swift an “open source” language, meaning that anyone can see how the language works, suggest changes, and use the source code to build more products for non-Apple devices. For example, IBM released their IBM Swift Sandbox. This tool works in your browser. It shows a live preview of your code, instantly, without any of the hassle of setting up Xcode or learning how it works.

CONS

  • With every new version of Swift, your app’s code may require updates, and developers warn that this can be time-consuming, as you may need to rewrite code manually.
  • Xcode is the program where developers write and test Swift applications, and it’s a little buggy with Swift. For example, the autocomplete feature works better with Objective-C, and autocomplete is really helpful when you’re still getting used to new coding terms and punctuation.
  • Objective-C has been the language of choice for decades, and lots of software still uses it, including much of Apple’s own software. You’ll likely need to know Objective-C if you’re planning a career in iPhone-related app development.
  • Some developers prefer Objective-C simply because that’s what they learned first, and their teams don’t have time to learn a new language or convert massive programs to Swift. So if you’re planning on joining an iOS team anytime soon, chances are you’ll need to learn their preferred language.
  • Objective-C compiles faster than Swift. Compiling is the step that converts your human-readable code into something the computer understands so it can package up your app and let you run it. The duration of this step isn’t likely to affect you when you’re building your first, smallish To Do app, but in the workplace, you may be working on large programs that take longer. In that case, your colleagues will likely prefer to work with Objective-C, which means you’ll be using it too.
  • Because Swift is relatively new, there are fewer places where you can search for clues when you’re stuck. There are fewer Swift articles on StackOverflow, for example. There are approximately 170,000 posts about Swift and 280,000 about Objective-C. However, this landscape is changing as Swift gains popularity.

What are developers saying?

We scanned the web for a cross-section of viewpoints. The folks we’ve quoted include individual developers engaging in public discussions. There’s also a more journalistic take (ArsTechnica). And last but not least, we added the views of a coding teacher who knows what students go through as they learn Objective-C and Swift.

– “Objective-C is definitely better to learn first,” because there are “still limitations to the tools that use Swift.” – Kristina ThaiiOS Engineer and Designer at Intuit

– Compared to Objective-C, Swift is “Easier to learn and teach, harder to mess up” – ArsTechnica

– “I am an iOS developer and working with Objective-C. But now we are migrating our project into Swift. So it’s better to learn Swift rather than Obj-C.” – Ashwini BankarSenior iOS Developer at TechnoPurple

– “I recommend a Swift first approach for both absolute beginners or those from different development domains.” – Pasan PremaratneiOS Developer, Instructor in Objective-C & Swift at Treehouse

Example — What does Swift look like?

In programming tutorials, often the first lesson is a “Hello World” exercise. The goal: write a short program that tells the computer to display “Hello World” on the screen. Written in Swift, we can achieve this in one line, like this:

The same program in Objective-C looks like more complex, like this:

And this is the learning environment in Swift Playgrounds:

Next Steps — Learn Swift

If you’re eager to make apps, you’ll need a few things:

  • Access to a Mac computer.
  • Xcode, Apple’s free program for coding, compiling, and testing in Swift and Objective-C.
  • Access to an iPhone for testing your iPhone app. You can test using simulators, but you’ll get more realistic results and fewer glitches on an a real, physical Apple device.
  • Access to any other Apple device your brand new app will run on (i.e. iPad, Apple Watch, or Apple TV).

If you’re new to programming in general, the best place to start in Swift is:

– Swift Playgrounds – a colorful iPad game, no computer or Xcode required

Some of the best tutorials:

– Ray Wenderlich’s Swift Resources – Ray’s guides are among the most popular and trusted in the industry, mentioned in may top-10 lists by Apple developers. His style is friendly and approachable, often including cartoons. His free content is diverse and thorough. It includes blog-style programming essentials for those who have never done any coding. He also has loads of videos, cheat sheets, a podcast, newsletters, and books.

– Lynda.com – Often available for free with a public library membership, Lynda is popular because it’s accessible while also polished. Their courses range from novice to intermediate, broken into modules averaging 1 to 3 hours in length, with some project-based tutorials, e.g. “Build an iOS Messaging Application”. New courses are added regularly, keeping pace with Apple’s updates to Swift and iPhone features.

– Apple’s “Start Developing iOS Apps” Guide – Apple’s own guide to mobile development is spartan but very clear, with no distracting ads or gimmicks. The guide has an obvious flow, so it’s easy to see the structure of an app and how its many parts work together. Some knowledge of basic programming terminology would help, though they do include a built-in glossary of definitions relevant to the mobile app development context.

Want to hear about what it’s like to develop mobile apps with Swift? Check out CodeNewbie’s interview with mobile developer Alicia Carr.

Posted in Uncategorized | Leave a comment

How Do Browsers Work?

The web browser is one of those things that we rely on to “automagically” do amazing things for us. Show me how to find coffee nearby…now! But how exactly does it turn code into pixels? CodeNewbie invited Lin Clark, an engineer at Mozilla, to tell us all about it. Here’s what we learned.

There are two stages. Stage 1 is turning your code into a blueprint. Stage 2 is taking that blueprint and turning it into pixels. Let’s walk through each stage.Image title

STAGE 1 – MAKING A BLUEPRINT

Step 1 – Parsing

HTML arrives in the browser as one long string. The browser cuts it into individual elements: headers, paragraphs, unordered lists, etc. Elements are arranged in parent-child relationships like a family tree.

Image title

This tree tells your browser the order of elements from top to bottom, and which elements will need to be nested, one inside of the other.

For example, let’s say you have a div with a bright purple background and you put a paragraph inside that div.

Image title

The parent-child relationship here means the child (your paragraph) will get the same background color as its parent (the div).

Sidenote: Lin drew a fantastic illustration of the HTML parsing process. (See the full-size cartoon here.)

Image title

When every element is mapped out in relation to the other elements, the resulting tree is called the Document Object Model, or the DOM.

This is the very first step on our way to showing your code to the world!

Step 2 – CSS style computation

After your HTML has been converted to a DOM tree, the browser moves on to a new task. It’s time to look at your CSS. This is the code that tells the browser what colors and fonts and borders you want.

Lin suggested a helpful way to picture this step. “I think of that kind of like a person filling in a form for each of these elements that’s in the DOM tree. And the form’s going to say what the element should look like.”The form has a blank for every single one of the CSS style attributes — more than 200 of them!

Even the styles you didn’t choose to apply are listed on the imaginary form. The browser needs to know whether to dress up your elements with styles that you picked, or use a default. The browser is very diligent. It checks all the styles to complete the form for each element.

And that wraps up Step 2! Let’s add it to our diagram below HTML parsing.

Image title

Step 3 – Layout

Now the browser has structure and style information pieced together for each element. But how big is each element? In responsive layouts, we often code sizes in percentages. For example, we can make a box that’s 50% wide. Whether we put it on our large laptop and our much smaller mobile phone, the box will always take up 50% of the space. But those two screens are very different sizes. And while 50% is helpful for us, the browser needs to know how many pixels it can use to show you the box. How does the browser get that number of pixels?

Layout is the step that solves the sizing problem. The browser checks the window size in our display, then calculates what the height and width of each element should be.

Let’s add layout to our diagram to wrap up Stage 1. Our code has now been converted to a blueprint. It’s called a frame tree, render tree, or box tree.

Note: At this point, we still haven’t shown anything to our user. But that’s about to change! Up next is Stage 2, where the browser can use the blueprint to make the website that our user can actually see.

Image title

STAGE 2 – TURNING THE BLUEPRINT INTO PIXELS

Step 1 – Painting

It’s time to make something beautiful happen! Stage 2 is where plans become pixels.

The first step is called painting. To envision how this works, Lin recommends thinking of the screen as a piece of graph paper, where each square represents a pixel on your screen. The browser assigns a color to each pixel on the screen, according to the blueprint from Stage 1.

Square by square, your website elements take shape. The process is nearly done!

Image title

Each element — paragraph, div, heading, img, etc. — is painted separately.

Let’s add some sample website elements to the diagram.

Image title

Here we have a background, some articles, a hero image placeholder, a navigation bar, and a profile picture, in no particular order. Now let’s add it to our full diagram.

Image title

One more step to go!

Step 2 – Compositing

All the elements are put together in layers now — your background at the back, menus and body content on top, etc. Some layers will cover other layers, like when you’re making a scrapbook.

In CSS, you can set the order of the layers using the z-index property. A low z-index pushes an element back toward the background. A high z-index will keep an item on top. For example, you could give your background a z-index of -1, and set your logo to be 10.

Once layers are set, the browser takes a snapshot. The output of that snapshot is what you see on your screen.

Image title

We made it! The full process looks like this:

Image title

AND IT DRAWS AS FAST AS YOU SCROLL

The browser is checking for updates every 16 milliseconds! Every time you scroll, highlight, or click, what you see changes, and the browser is redrawing pieces of the webpage.

To learn more about how the browser does so much, so quickly, tune in to Season 2, Episode 2 of the CodeNewbie podcast.

Posted in Uncategorized | Leave a comment

How can I practice pair programming?

Pair programming is part of the day-to-day software development process for many companies, and it can also be used as part of the technical interview process. When interviewing job candidates, it’s a helpful way to see how you might perform on a team.

But if you’re new to programming and haven’t had a ton of pair programming opportunities, it can be hard to practice this part of the interview process. So we asked an experienced coder to help us out.

Avielle Wolfe is a developer at thoughtbot, a software design and development agency. Their team creates custom-built web and mobile products for their clients.

“We don’t have a hiring team or recruiters,” Avielle says. “We all take part in hiring. I’ve conducted several pair programming interviews.”

She also passed a pair programming interview to land her current job. “A full day of pair programming is [the] last stage at thoughtbot.”

In her experience, practicing this skill set is “tricky, especially when you’re learning at home,” she says.

Revealing our work takes courage. One way to ease into it is by pairing with fellow beginners. There is value in meeting people who are on our level, Avielle tells us.

So how do you find awesome programmers who are also looking to pair? Check out the CodeNewbie Twitter chats! During the Shoutouts section (the last 10-15 mins of our Wed chats), tweet that you’re looking for someone to pair with and what you might want to work on.

“Any opportunity you have to pair with someone, I definitely recommend taking it,” Avielle says. She recommends looking for communities where you can join in.

BEGINNER-FRIENDLY ONLINE COMMUNITIES

If you want to get to know people in a beginner-friendly chat room environment, try joining Slack groups for people learning to code. We have one! You can join here.

You can post questions on Slack any time. You can also see what other coders are working on. Reaching out to help fellow learners will reinforce your own learning. When you want to share screens and code together, try Google Hangouts or join.me.

Another online community that’s welcoming to beginners is Code Buddies. They have public Slack channels as well as scheduled study groups and hangouts. Each scheduled online hangout is dedicated to one language, problem, or skill. You can add your own hangouts to attract people to a topic or debugging challenge that you’d like to hash out, live, online.

FIND A MORE SENIOR PAIRING PARTNER

We investigated 20 meetups, lists, and matching services for pair programming. These are the most active. CoderMatch.me is especially handy because it filters results by programming language and skill level.

– CoderMatch.me is a web app that matches you based on your skill level, your preferred partner’s skill level, coding language, location, and whether or not you can remote pair.

– Meetup.com – Pair Programming – This event category lists over 140 pair programming meetups (look for remote if there are none near you).

– “Kent Beck” Scrum and Pair Meetup is a daily online (remote) pairing event open to all levels.

Not sure how to present your skills and talk about your projects in your job interview? Check out Season 2, Episode 3 of the CodeNewbie podcast.

Posted in Uncategorized | Leave a comment

Apple Rejected My App. What Do I Do Now?

App Store rejections can be discouraging and downright puzzling. We’re here to help.

According to Apple, 51% of App Store rejections fall into just 3 categories in their somewhat cryptic guidelines. We’re addressing each category, offering some explanation and suggestions you can use to get your app accepted.

First thing’s first: you need to know that rejections are common. In 2012, Tim Cook said that 30% of apps submitted to the App Store were being rejected. IOS developers we spoke to told us that even full-time, iOS devs still face rejections from the App store. If you need to fix some issues and resubmit, don’t be discouraged! The cycle of submission-rejection-fix-resubmit is so common that UpWork has a category of App Store freelancers for hire to help with App Store resubmission. It’s not you. It’s an imperfect process.

Getting to acceptance is all about knowing Apple guidelines. We asked two iOS devs to help demystify the jargon below.

Subject matter experts: Ish Shabazz, an independent iOS developer, and Melanie Ehasz, an experienced web developer and freelance iOS dev.

REJECTION REASON #1: PERFORMANCE

– 25% of app rejections cited this reason

– What does it mean? — Your app is crashing or buggy

– What’s the problem? — Sometimes your app is trying to do too many things at once and it’s slow or unpredictable. It might happen while using the app, or before the experience even begins. “If it takes too long for our app to launch, that’s no good,” Ish warns.

– What can I do? — You need to do lots of testing. And we’ve got tools for that! You can test multiple devices right at your computer, using Simulator. You can also send your app to other people using a new tool called TestFlight.

“I always recommend testing on a device if you can, before submitting to Apple for review,” Ish says. He only tests small features using Apple’s Simulator, “during the early stages of building an app.” What he likes about the simulator is that “you can look at how things will respond on a number of different devices right away,” without owning or switching between physical devices.

“Have as many people as possible test the app,” urges Ish. “It doesn’t guarantee you’ll be fine, but it gives you a better shot.” And it’s definitely better than sticking with Simulator alone.

Melanie’s also feels that she benefitted from testing. Her testing approach for her first app included two processes. She says, “I wrote a couple of unit tests, but mainly, I got feedback from people trying the app and letting me know what didn’t work and where there was user experience confusion,” she says. We won’t cover unit tests here, but to learn more about them, go here.

“Now that Apple has purchased TestFlight, it’s getting easier to test,” Ish says. TestFlight is a beta testing tool. It lets you build a “beta” version of your app, which means a version that’s still being worked on and probably has lots of bugs. It’s still in testing mode, and not quite production ready. Unlike a simulation on your computer, the TestFlight version of your app will be ready for sharing!

You can send an email invitation to up to 2000 testers. Your invitees will receive a link to download your beta app to their phone, like a regular app. Be sure to ask them for feedback and follow up with reminders. They might forget! But this information is incredibly valuable because every user has their own history and preferences. They’ll use your app differently from how you use it, and catch bugs you might miss.

Getting honest, and sometimes tough, user feedback from beta testing can be scary. But remember that feedback isn’t about finding out whether your app is “bad” or “good”. It’s about giving your brain a break and crowdsourcing ways to make your app even better.

REJECTION REASON #2: DESIGN

– 16% of app rejections citing this reason

– What does it mean? — Functionality, originality, and visual appeal all count here, in ways you might not expect as a beginner.

– What’s the problem? — Reviewers reject apps that look boring, and those that seem to be duplicating a website. Apple expects developers to make use of all the cool features our phones have.

– What can I do? — Take the time to read Apple’s Human Interface Guidelines. Ish says that sticking to this set of guidelines will help you steer clear of most design missteps. “If you follow the guidelines, you’re pretty much guaranteed to be okay for the design category,” Ish reassures us.

If you’re looking at these guidelines for the first time, they might be a bit intimidating. The guidelines are long. Some of it’s highly technical, like the part about resource usage and managing interruptions from other apps. Some of it just might take a while to digest because it leans on buzzwords and designer jargon. For example, what is a “refined, innovative” and “app-like” app with sufficient “deference”?

We asked Melanie and Ish for more information about high-level takeaways from the guidelines, and the importance of having a “mobile designer” mindset. Here’s what they told us about how thinking about a mobile app was different from planning web apps.

Melanie’s first app is called “Pet Cemetaries”, “a place to memorialize a pet that has passed”. She says that, “The user interface (UI) of Pet Cemeteries differs from the UI of general web design in that each page is much simpler, but the overall navigation is more complex.”

For example, moving from one page to the next is different in an app. “It is important to think about how a user will get back to a certain page, whether a hamburger menu (three stacked lines) is necessary and what clues will guide them to progress through the areas of your app.”

Image title

UI and visual appeal go hand in hand. Melanie shared some advice on visual appeal, as well.

“The aesthetics of web development are different from the aesthetics of app development,” she says. “For one, apps make much less use of background images for visual enhancements. This fact forces you to think about how to make your design appealing without falling back to images.” So, stock photos: less important. Color schemes and meaningful single-color icons: more important.

“The same goes for animation,” Melanie adds. “There is some ability to animate in apps, but it does not measure up to web development animations.” Simplicity is essential.

Simplifying will help when you’re in the early stages of design planning, too. Melanie advises breaking interactions down into single goals. “In developing an app, it is useful to think of one page as having one function. Ask yourself, what decision do I want my user to make on this page?”

Also, look to other apps for design cues. Fundamentally, “if it looks sloppy, it’ll get rejected,” Ish notes.

If it looks too much like other existing apps, that could also be cause for rejection. Give yourself time to browse among apps similar to yours. Think about what you like, and what you could do differently. Find a niche and make it your own.

REJECTION REASON #3: METADATA

– 10% of app rejections citing this reason

– What does it mean? — Reviewers think you need to improve the screenshot previews of your app, or your description of the app.

– What’s the problem? — This one’s a bit subjective. Ish warns that because reviewers are human, they’re sometimes inconsistent. An app description that passes today might not pass in a month, even though you’ve submitted the exact same description.

– What can I do? Melanie says: “You can’t always guess what small thing will get your app rejected. Just keep trying.”

Words that look potentially offensive — even if you don’t intend them to be crude — are best left out. For example, Ish had “WTF” in an app, and that was flagged, even though it appears in other apps currently in the App Store. Save yourself some time. Cut words and abbreviations that could be misinterpreted. Keep it PG.

Melanie recalls how her app was rejected because the reviewer “didn’t think my screenshot matched the functionality of my app.” Melanie had used a screenshot of a “lush green cemetery.” She says, “I believe it did accurately reflect the purpose of my app,” but she replaced it with a picture of a pet anyway.

HOW YOU CAN GET STARTED

Haven’t built an app yet? Here’s some advice from Melanie and Ish to help you get started.

Ish: “Beginners can try things on their own phones… you can get full functionality on small projects just for yourself. Make a notes app, todo app, weather app. Just give it a shot. My biggest piece of advice: don’t be afraid of failure! It’s alright. It might not compile. Just try it anyway.”

Melanie: “Start simple. Get an idea. Simplify that idea. Sketch it out and then decide if you could simplify it further. There is an overwhelming amount of information out there, and that can inspire you to build things that you are not ready to build yet. Once you’ve built your basic app you can add a few flourishes to it. The most important thing is to get the first one out there.”

Posted in Uncategorized | Leave a comment

Yes, you can be a public speaker

A lot of amazing people don’t speak at conferences because they think speaking requires being an expert.

It doesn’t. At all.

Speaking is a form of storytelling. It’s a performance more than anything. It’s a skill that can be practiced and learned. But that’s not very practical advice, so here’s a technique I use in all my talks:

I’m never the expert. I’m the student.

I’m the main character that goes on a tech-related journey and learns thing along the way. My talk is me sharing those lessons with you. Here’s how that unfolds.

WHERE TO START

I pick a starting point that’s accessible, that the audience can relate to.

For example, you might start with the question, “I want to be an expert developer ASAP! How do I do that?” That one’s from my “Reading Code Good” talk that I’ve given ~15x. Also my 1st talk ever.

Or, the starting point could be ”What does it take to be an open source contributor?” That one’s from my “Lucky” talk.

WHAT TO DELIVER

A simple, relatable problem is an ideal place to start, and then the rest of the talk is spent taking you on a journey where I unpack this problem, and learn a few things along the way. I have a strong narrative that’s easy to follow, but the lessons are always concrete and explicit.

At the end, I’m not an expert. I’m the character in a story who’s grown and learned. And if I do my job, the audience has learned with me.

This is incredibly valuable, because now you have a powerful connection with your audience.

WHEN YOU KNOW “ENOUGH” TO BE A SPEAKER

Interestingly enough, sharing not just what you know but *how* you came to know it means that you are able to establish your expertise without declaring yourself an expert.

So instead of focusing on whether you know enough, think about the last time you learned something that was meaningful to you. Find a problem, a conflict you experienced. Think about how you solved it. What’s the story there? How did you learn? How’ve you grown?

It might make a good talk!

How do you overcome the “expertise myth” of speaking? Tell us on Twitter @CodeNewbies.

HEAR FROM TWO SEASONED SPEAKERS

Listen to Season 2, Episode 4 of the CodeNewbie podcast for a candid discussion on public speaking pro tips and pitfalls. Hear from Kelsey Hightower, speaker and chair at many tech conferences, and Lara Hogan, author of a great new book on public speaking. They share their personal experiences as well as advice on how to prepare a talk, what makes a strong proposal, and the common mistakes they see first-time speakers make.

Posted in Uncategorized | Leave a comment

Bits, Bytes, and the Shift Toward 64-bit Apps

BACKGROUND – FAMILIAR USES OF MEGABYTES

You may be familiar with seeing megabytes (MB) and gigabytes (GB) as measures of computer memory. For example, think about sharing photos. You open an email. You attach a photo. The attachment size on the email appears. It’s a number followed by MB. That’s the photo’s size.

Image title

Terms like bit, byte and megabyte are all measures in units of binary code. Binary is the language computers use to process, and store information. It’s all ones and zeros. Bits are small. Megabytes are bigger. Gigabytes are even bigger. (Vaidehi Joshi provides a straightforward intro to binary, bits, bytes — and something called “nibbles”! — in Season 1, Episode 1 of the Base.cs podcast.

In the photo example, the number of MB means “this many ones and zeros are needed to represent your photo in computer language”. And the recipient needs to have that much free memory to download your photo.

When developers are talking about 32-bit and 64-bit applications, they’re talking about the same measuring units. It’s still binary. But they’re not talking about the size of the program. They’re talking about the type of hardware it runs on.

Here’s a breakdown of what the numbers mean, and why it matters.

DECODING 32-BIT VS. 64-BIT

32-bit and 64-bit are measures of the thinking power in a processor (the computer’s brain).

Our computer and smartphone processors take in lots of information…

Image title

…but they need to break it down into chunks. Just like we do.

People read a novel one sentence at a time. Computers need to read code in small chunks, too. Each chunk is called a register. The 32 in 32-bit says how long the register can be.

Think of registers like sentences. So, 32-bit and 64-bit tell us how much a device can process in one computer-sentence. A 64-bit processor can process more information at a time.

WHY THE SHIFT TOWARD 64-BIT SMARTPHONES IS EXCITING

64-bit processor is a much, much smarter processor. Stay with us, here. This part is going to blow your mind.

A 64-bit processor can do faster math, and more complex math. We can do more complex things with a 64-bit processor, because this piece of hardware is capable of thinking through logic problems and organizing information.

The smarter the processor, the more information it can evaluate and organize in temporary memory.

Temporary memory is called random access memory, or RAM. It’s like a whiteboard. It’s where the computer is taking notes as it thinks through a complex task. A 32-bit processor can use up to 4GB of RAM effectively. Ready to be astounded? A 64-bit processor is so stellar at complex thinking, it can use 16 billion GB of temporary memory.

Image title

WHAT THIS MEANS FOR CONSUMERS

A 64-bit processor is so smart, we can’t even use all of its brainpower in most smartphones yet. Few of them have more than 3GB of RAM.

Meanwhile, servers, desktop computers, laptops, and tablets have been using 64-bit processor hardware for a while now. These more powerful processors can handle intense video processing and games.

WHAT CODERS NEED TO KNOW

“64-bit” is not the hottest term in the tech world now that neural engines have been introduced, but it’s still popping up in developer circles because 64-bit is becoming the norm, and 32-bit apps are being phased out. App developers need to create software with 64-bit in mind.

The benefit: when systems are more standardized, it gets easier to write code for a broad range of devices. We’re seeing a shift toward standardized 64-bit processing for all consumer devices — laptop, tablet, and smartphones. It’s kind of like driving a car in a country that drives on the other side of the road. You can do it, but it takes some time to get used to it. Standardization saves you that learning time.

RESOURCES

– Find out more about processor terminology — CPUs, dual-core, and quad-core here.

– To learn more about how computers think in binary, check out Episode 1 of CodeNewbie’s new podcast, Base.cs.

Posted in Uncategorized | Leave a comment