I’ll assume you know raw JavaScript and a little raw Node. Enough JavaScript to be familiar with the DOM, anonymous functions, and callbacks. You dont have to know React or anything of the sort.
First up, Learn enough to recognise the new syntaxes in ES2016, along with promises, arrow functions, generators and async await. You don’t have to be good at them; just be able to know how to read them.
Now learn enough Node and NPM to start a vanilla Express server and realise how much work it would be to write a whole fully featured web application in it.
Now quit jQuery, cold turkey.
If you come from using a Rails-like framework such as Rails, Django or Laravel, the though of scouring NPM for all the packages you’ll need, you’ll be wanting someone to make opinionated decisions about the right packages for the job for you. May I suggest Adonis.js. It comes with all the MVC, Authentication and ActiveRecord stuff you’re used to, along with loads of other good stuff too. You’ll have a good reason to learn about Generators, Promises and async await here.
Resist the urge to jQuery.
If you want to write your front end as a single page application (SPA), to run in front of your API, you could use what you’re familiar with, or you can start afresh with Vue.js because it has the gentlest learning curve of any of the mainline frameworks, all the best stuff from the other frameworks, and you don’t even have to learn a bundled/compiler if you don’t need it.
Vue is easy to learn, easy to adopt, and you’re never forced into complicating things too early. Go at your own pace, and eventually you’ll learn about components, which will change everything. Get started with Vue’s single file components and never look back.
With Vue, you don’t need a router out of the box, until you know you do. You also don’t need state storage until you know you do.
You want to write a universal app, or use Material design you can do that when you want. Heck, you can even bring in JSX if you’re feeling that. And you dont have to add any of these packages to your project, until you need it, and in any order.
tl;dr: Learn enough JS and Node to spot new JS language constructs, starting with Adonis will give you a reason to learn the new stuff while giving you an easier path to success.
Disagree? Got a easier, faster path to productivity and learning all this crazy JS? Chime in below, or hit me up: @Glutnix on Twitter.
]]>Sure, I did spend some time ‘upskilling’ at work doing the design and html template, but I got the whole WordPress skin done in about 4 hours.
I based it off of the Classic theme (y’know, the ugly default theme) and tweaked the living daylights out of it, adding extra template files.
I’m quite happy with how it came out. What say you?
]]>Jakob Nielsen’s Alertbox, June 23, 2009: Stop Password Masking
Usability suffers when users type in passwords and the only feedback they get is a row of bullets. Typically, masking passwords doesn’t even increase security, but it does cost you business due to login failures.
This sounds like Nielson kicking up publicity. This is shorter than his normal articles and he hasn’t backed this one up by mentioning his latest rounds of usability tests. He’s often got really good points, but this is one that I have issue with.
Nielson has forgotten that the reason password masking exists is if you type it out but don’t submit the form right away, then it won’t be on the screen for a long length of time for passers-by to ‘shoulder-surf’. The form could be really really long and/or you might be a really slow typist.
Padlocks and deadbolts keep honest people honest. The same goes for password masking.
Not to mention that password masking is visual shorthand reminder for the personal habits of “you should remember what you right in this box, cos even you won’t see it” and “no-one else should see this but you”. If we removed this ‘tell’, what would become of the culture of ‘protect your password’?
Think of where, other than web sites, that password masks get used. ATMs, EFTPOS machines, computer software, the Operating System uses it. Western culture is conditioned to this design pattern, and I speculate that the only people who have trouble remembering passwords are the ones who were born before 1980.
I guess a compromise would be to have the field in plain text when it has focus, switching to a password mask on blur…? Not a difficult solution.
]]>You can see sketches and a bit of the process on my website.
UPDATE:
There have been many requests to use this image on other websites, so I’ve decided to release it under a Creative Commons license. You are free to reuse the image on your own website as long as credit is given and linked back to RobotJohnny.com.
For prints, contact me directly.”>
IE6 denial message for Momentile.com
Uploaded to Flickr by John Martz.
Go home, IE6!
My slides for the talk I did (PDF, 180kb)
My slides are licensed under a Creative Commons Attribution 3.0 License. You are free to share and remix my work without limitation as long as you credit me, Brett Taylor, with a link to this blog post.
. . .
I had a really good time at the WDANZ Conference. While there wasn’t a spectacular turn out, the quality of the speakers was second-to-none. I learned an absolutely epic amount of stuff about the business hemisphere of this industry, and met some of the most highly respected developers in New Zealand. I won’t be missing the next WDANZ conference in my city!
]]>Done using simple CSS and a nice bit of JavaScript, but nothing too advanced, and without any libraries!
Enjoy it!
]]>urlTea
A Web 2.0 look at the Short URL services. Light, simple interactivity. Intuitive design. And even an API! I’ll probably GPL it soon too…
Your thoughts?
The extension for Firefox just went 1.0 final (heh, a Web 2.0 tool coming out of beta), and that’s a big deal. Joe has been working on Firebug for just over a year, and it has become a tool more indispensible than even Chris Pederick’s Web Developer extension!
What? You don’t have either of these?! You call yourself a web developer? Let me guess, you still think IE is the only browser worth developing for, and heck, you probably believe that developing to Web Standards is just elitist acadamia… get with the program. Why leave the interpretation of your code to tag-souped chance?
… Eh-erm. Sorry about that monkey I had to get off my back. I heard a rumor yesterday and my anger has found its vent.
But seriously, all those IE die-hards that are still out there today should be amazed at what tools our industry-standard (as opposed to the de-facto-standard) web browser we call Firefox makes available, let alone makes possible.
Since Mozilla 0.7, I’ve found it’s more time-efficient to develop in a Gecko-based browser, then bug-fix for everything else — because it’s much harder and stressy to start in IE and bugfix to Gecko. I’ve found this true for all the technologies: CSS, JavaScript, XSL, AJAX, and now SVG
Viva la revolución! Viva la web standards!
]]>So we did. And let me tell you, I’m really happy with how it turned out. It’s nothing revolutionary or taxing, but it was heaps of fun to redesign and make the templates as we went, with Michelle right there working with me.
This comment from The Abandonware Blog about Bunny Abandonware 4.0 really made me feel good:
Finally some nice scene news! Bunny from Bunny Abandonware has been mentioning is for quiet some time now but finally managed to get the new version of her website online and I must say (again) that it kicks ass! The unique colors used by only one abandonware site, the wonderfull [sic] navigation, the nice kinda web 2.0 style with all the gradients and big buttons ‘n stuff… damned pretty.
LOL, I did some Web 2.0 :rolleyes: But I’m taking it all as a compliment. I believe that what Michelle does with her abandonware hobby is crucial for the survival, not just of the games, but of the memories. Abandonware, while legally dubious, is less a case of stealing and more the case of paying tribute. I keep telling Michelle she’s not just another retro gamer; she’s an archivist — the curator of her own museum. A museum where the exhibits remind her visitors of the way video games used to be, and where not only games, but ourselves as people have come since then, for better or for worse.
I think the best Christmas present I gave myself was when for Christmas I gave my brother a huge pack of water balloons . I had moved out of home to Wellington and I had come to realise that I missed him. We had fun in that back yard that one day, running around with the sole purpose of cooling off and having a blast. But I did it with the motive of having that memory to look back on — a careless, happier day in my history. It worked, and it’s one of the most cherished memories I have. It didn’t cost a lot.
Memories are worth gold, but the most valuable memories are the ones that cost the least.
]]>Tomek, Nahum, and I are organising a Rails session for newbies this month. We aim to make it the best Rails session yet. We’ve organised some books to give away, a discount for O’Rielly, and will be putting on Pizza (and hopefully beer if we find a sponser. The session will be about building a basic blog app, but the overriding theme will be to get the uninitiated but curious, and the beginners along, and give them a taste of the good stuff. We aim to nuture their curiousity into a love of Rails – which will benefit the entire Wgtn software development scene.
What: Getting started with Ruby on Rails – a community based approach
When: 6:30pm, Tuesday, 31st October 2006
Where: CreativeHQ, 25a Marion Street, Te Aro, Wellington (behind Resene Paint)
Presented by: Nahum Wild
Intended audience: Anyone interested in Ruby on Rails.
Prerequisites: Interest in Ruby on Rails. Knowledge of programming in any language will be useful during the live demo.
Refreshments: Hell pizza
Cost: Free. It’s a community event. It is our turn to give back.
The format will be as follows:
Interested? Only 12 places left… Find out more about this event! I’m looking forward to this one…
]]>When I switched host, I needed to update that site’s record of who is handling the domain name. Friday night, I logged into the domain registrar and found the page which lets me update the nameservers. I am told this is called updating the zone file.
When I do this, it is supposed to propagate the changes through the all of the DNS servers around the world within the space of 24 hours. That’s how it works. Problem solved.
Not with this domain name. Monday morning rolled around, and still the domain name was pointing at the old host’s servers.
This is weird, because whois.net and samspade.org are reporting the dns records correctly.
So I get in contact with the registrar who handles the domain name. The lady on the other end of my web-based IM session told me it’s probably Telecom’s fault, as this kind of thing isn’t surprising, and on request provides me with phone numbers to Telecom.
After 15 minutes on hold (because of the power cuts in Auckland recently) I get through to a guy in Complex Technical Support (yes, that’s what the department is called at Telecom/Xtra), and I explain to him my problem, and stubbornly refuses to believe that their systems are as bad as I have been informed — I asked that he flush their dns cache for me, but he refused. After frustrating attempts to get him to see what I was seeing, I took his name down and department in case I needed to stick it to him.
So I talk to my System Administrator here at Natcoll, and he introduces me to a tool called dig
which will let me see what different DNS servers are saying about domain names. After checking a few low level DNS servers, such as Paradise and Xtra, we checked the A-level DNS servers — and the first B level DNS server I checked was mis-reporting too! No wonder we’re having these problems.
So, after trying to raise an IM session with the registrar, I tracked down their phone number and called them for real. I got a helpful soul who said aha, no, what I was told by the other staff member is incorrect. Turns out that they are not a .com registrar themselves, but have to go through a US company to register .com domains on behalf of their customers, and it would seem that the propagation of the zone file changes I requested had failed, and they would need to request them to happen by telephone.
So all’s well that ends well. I’ve called Complex Tech Support back and asked that a message be left for the employee I spoke with, telling him that he was right, and I was fed bad information from my registrar and I wanted to apologise.
Hopefully the site will be up tomorrow morning! I guess we’ll see, eh?
]]>Clark doesn’t just criticise the content of the new guidelines, but the manner in which they have been delivered to the world and how valuable stakeholders haven’t been listened to or even consulted.
What does this mean? A lot of the work of WCAG1 — the things that actually work — seems to be being undone and losing a lot of it’s punch. And instead, most of what WCAG2 is proposing Joe claims to be unachievable — and he’d know.
I could start explaining, but you’re better off reading what Joe Clark had to say his A List Apart article.
The WAI committee didn’t give much time for interested parties to provide comments — only until 31st May 2006. You better read this now and provide your feedback to the group while you still can.
UPDATE: Corrected some mistakes — thanks Joe Clark for dropping by and correcting me
]]>?gonaked=1
on the end of any inner.geek.nz url, or view this page naked.
]]>I’m working part time at 3months.com now, and tomorrow is my last day at the DRC. I love working at 3months: the attitude of the workplace is relaxed but focused; everyone is enjoying their work. I start full time this Monday (3rd Oct). They’ve already got me working on a fun but rushed PHP project. I was working three days a week at DRC, and Wednesday and Thursday at 3months.
I’m so glad I’m not working two part time daytime jobs any more — three Mondays a week is lethal to your mind. I personally believe in sticking your focus to one a project a week at work, using the natural downtime on the fringes of the weekend: use Friday to ‘swap to disk’ for the weekend, and Monday to load the week’s project back into memory. The brain isn’t too good at swapping.
3months also issued me a laptop as my main work computer. This is awesome because I’ll be able to blog from the conference, and maybe even tap into the subconciousness of the lecture attendees, AKA the conference IRC room. Oh, and maybe do some work…
My mum is off to Brisbane to live with her new squeeze. She’s flying out of Palmerston North on the 15th, so I’ll be up there to see her off. She is saving up for my brother Stuart and I to visit her for Christmas. Sydney will my first overseas experience, so I’m looking forward to following it up quickly with a visit to Brisbane.
Speaking of holidays, I’m off to see the Guru, the wonderful Guru of Bob, erm, GuruBob down in Mosgiel (near Dunedin) for New Years: Bob has offered for me to crash at his place for a few days. I’ve never been more south than Christchurch, so seeing some of Otago with a born-and-bred Dunedinite’s point of view sounds like fun Maybe even see Bob fly his new RC Plane…
So yeah, my next post will probably be in Sydney! I’m taking my camera, and will be trying to find buildings from The Matrix on Saturday… w00ta! (is that Australian for “w00t”…? )
]]>So I got my invite, signed up and ended up with glutnix.wordpress.com — yay! The app is totally based on WordPress, but it looks slightly different, and has some improvements, like a not-so-rich-text editor (over editing HTML), collapsible sections in the edit page, including an AJAX categories selector which lets you add new categories to your blog without leaving the page, even suggesting existing categories that other bloggers on wordpress.com are using, forming a type of folksonomy.
No plugins though.
Will I use it? Nah. But it’s good to see what progress is being made on the newest version of WordPress
And incidently, I have a golden ticket to give away to someone who wants it real bad. First person to ask me for it will receive it…
]]>Design is a mis-used word today, and leads to much confusion in the Web industry today. I consider myself a “Web Developer”, because I’m a developer. But people categorise me as a Web Designer. Yes, I design things, but I don’t do asthetics as well as I do functionality.
According to Web Design From Scratch, Design is a spectrum. Something that is well designed will be an appropriate balance between Asthetic design and Functional design. Designing the Asthetics is the art of creating something visually conveys an emotion or brand. Designing the Function is the art of making something useful.
Even though I’m a programmer and focus on the functional end of the spectrum of design, I rely on the so-called “Web Designer” (who is in charge of asthetics) to make the application look good, and every time in my life I have been sorely disappointed.
Why is this? Web Asthetic Designers too often focus on the “wrapping of the content”; That is to say all they do is the graphics that surround a body of text. They might stipulate a font, colour and point size for the text, but that’ll be it.
What about Bullet points? Blockquotes? Sub-headings? The asthetic design of web forms? Text-boxes? Buttons? Photo positioning and balance? Captions? Source Attribution? Even simple things like link colours are sometimes forgotten.
Too many times I have recieved a “letterhead” — a webpage design that is essentially a blank piece of paper save for an asthetically pleasing header and navigation. Don’t get me wrong, I need someone to do that part, but I also need someone to tell me how to fill that blank space in a manner that doesn’t clash with the template.
As a programmer who appreciates asthetically-pleasing, yet gloriously-functional-design, but as someone who is less capable to create the asthetics (but doing his best), I would appreciate a web designer who can provide a great site presentation and provide a style guideline for laying out content within the template they provide. Is that too much to ask?
—
People say you can tell when a programmer has designed a webpage because it doesn’t look pretty. One web agency I worked for it would call it “Programmer Art”. But I can tell when a designer has half-designed a webpage, because the programmer’s user interface is clashing with the design of the site.
Oh, and don’t think I’ve forgotten that Programmers also have a responsibility to make their applications user friendly. But that’s a whole different rant.
]]>It’s gonna cost me some serious coinage… admission is AU$700, and hopefully work will pay for some of that, but I still gotta get airfares, departure tax, accomodation, spending money. All up I’m probably gonna have to get about NZD$1500 from somewhere, which probably means saving it.
I’ve never attempted to save this much money before, so it should be a good lesson for me. It’s also my first time overseas — I don’t even have a passport! I kinda want a laptop to take too… cybercafes suck.
Who knows, maybe I’ll get some sponsorship. Maybe some of my fellow attendee out there want to help me out? So I’ve put a Paypal button on the main page. But if you want to donate another way, let me know!
I intend to stay at the Sydney Railway Square YHA Wake Up!, which is only 5 minutes away from the WE05 venue. It’s cheaper if you bunk in a same-sex-room with 4 or 8 other buddies, but I don’t have any same-sex buddies who will be attending yet… If you’re going to WE05 on the cheap, contact me and we’ll hook up Of course, if someone wants to billet me, that’d be even better
Update: As with any good donation drive, you need to give something in return. So if you donate more than NZD$5 (read: more than USD$4.00) then I’ll post you a CD-R with loads of legal Creative Commons MP3s on it, just to say thanks! I might even throw some mashups on there too Be sure to include your mailing address so I can send you your CD
Update: Thanks to my good pal Andrew Morrison and my good friend CJ, combined they’ve donated NZD$150
Update: Cheers GuruBob for another NZD$25! Someone get that man a pie!
Update: HUGE THANKS to my new employer, 3months.com for pledging NZD$800!
Update: A big TY to Jenny Crumiller for the donation of USD$40! (~NZD$58.36)
Update: A big w00ta to Scott Buffington who donated USD$20 (~NZD$29.20)! Big Ups!
Update: Two updates today: USD$20 (~NZD$29.20) from Smikwily and USD$5 (~NZD$7.25) from David Pickett: Cheers you guys!
Update: Michael DiStefano donated a sweet USD$4 (~NZD$5.80) — Cheers Michael!
]]>I’m loving the 1.5 action. I love how plugins just add themselves to the menu bar in the admin panel. I love the dashboard. I love Pages. I love the Presentation tab.
One cool thing I discovered about Kubrick is it has a few CSS classes for adding images to posts, namely .aligncenter
, .alignleft
and .alignright
… I’ve been meaning to add these kinds of classes to Webfroot for a while, but then again, we don’t post nearly as many images as we could…
I’ve got glutnix.webfroot.co.nz permenently redirecting to here. If you find any problems with the redirections, please let me know. Also, if you got any kind of feedback or comments or suggestions or whatever, please give it!
]]>I’m still enjoying my time at Dev-Zone. Christmas looks like it’s going to be fun. I’m going to Otaki for a few days, then heading up to the Bay for a day or two, then come back on the 28th Dec with Sheree. Keep an eye on the moblog Oh, it has an RSS 2.0 feed too…
]]>I bought these books with the company credit card on Amazon on June 10th. Amazon gave me an estimate of delivery, due by June 27th at the latest. Yesterday I still hadn’t recieved the books. So I emailed Amazon and they agreed to re-send the books at no extra charge. (On a side note, this process was surprisingly human, but dripped with corporate stalety.). So what happens today? Said books arrive. I swiftly cancel the replacement books and all is well. I don’t blame Amazon, but I do blame the slow carrier I chose to use from Amazon’s choices.
So, I’ve read up to the third chapter of Zeldman’s most excellently written guide. It presents a brilliant case to business types for adopting the model he proposes: structural (X)HTML, CSS design and DOM and ECMAscript compatible behaviour. If you’re a web developer or designer, get with the program and read this book! Upskill for the web’s sake! Favorite quote from the book so far? A heading which says “How Do I Code Thee? Let Me Count The Ways.”
]]>What’s Playing (the way I’m using it) sends the id3 details of the last n songs to a php script. This script then takes those details and writes a bit of html which you then include in your page. What’s Playing can also upload an HTML file to your FTP server if that’s how you would rather do it.
]]>
SELECT ``. * , `regions`.`regionname` ,
MATCH (
``.name_first, ``.name_last, ``.address1, ``.address2
)
AGAINST (
' runner '
) AS relevance
FROM `regions`
INNER JOIN `` ON ( `regions`.`id` = ``.`region_id` )
WHERE (
(
``.businessflag = 0 AND ``.name_last
LIKE 'runner'
)
) OR (
(
``.businessflag = 1
) AND
MATCH (
``.name_first, ``.name_last, ``.address1, ``.address2
)
AGAINST (
'runner'
) > 0
)
HAVING relevance > 0
ORDER BY relevance DESC
< ?php class myclass () { function fGetNumbersBySearch($search, $region_id, $type_id, $start = "", $amount = "") { require_once('funcs.mysql.boolean.php'); $fulltext_key = "`".$this->table_numbers."`.name_first, `".$this->table_numbers."`.name_last, `".$this->table_numbers."`.address1, `".$this->table_numbers."`.address2"; // $sql = "SELECT `".$this->table_numbers."`.*, `".$this->table_regions."`.`regionname`, \n" .boolean_sql_select( boolean_inclusive_atoms($search), $fulltext_key)." as relevance \n" ."FROM `".$this->table_regions."`" ."INNER JOIN `".$this->table_numbers."` ON (`".$this->table_regions."`.`id` = " ."`".$this->table_numbers."`.`region_id`)" ."WHERE \n"; if ($region_id != 1 && ($region_id != "" || !isset($region_id) ) ) { $sql .= "((`".$this->table_numbers."`.region_id = ".$region_id.") AND ("; } if ($type_id == 2 || $type_id == "" || !isset($type_id)) { $a = explode (" ", $search); $sql .= "("; foreach ($a as $key=>$value) { if ($key >0) { $sql .= " OR "; } $sql .= "( `".$this->table_numbers."`.businessflag = 0 AND `".$this->table_numbers."`.name_last LIKE '".$value."' ) \n"; } $sql .= ")\n"; } if ($type_id == "" ) { $sql .= " OR \n"; } if ($type_id == 1 || $type_id == "" || !isset($type_id)) { $sql .= "((`".$this->table_numbers."`.businessflag = 1) AND \n"; $sql .= boolean_sql_where($search,$fulltext_key).") \n"; } if ($region_id != 1 && ($region_id != "" || !isset($region_id) ) ) { $sql .= ") )"; } $sql .= "HAVING relevance > 0 ORDER BY relevance DESC \n"; if ($start != "") { $sql .= "LIMIT ".$start; if ($amount != "") { $sql .= ", ".$amount; } } echo "<font face='verdana'><small><small>".nl2br($sql)."<br /></small></small></font>"; $result = $this->db->Execute($sql); if ($result === false) { die($this->db->ErrorMsg()); } else { return $result; } } ?>
I’m using some functions included, available at http://davidaltherr.net/web/php_functions/boolean/article.mysql.boolean.htm .
]]>My first day at Dev-zone is on March 10! w00ta!
]]>